当前位置: 首页 > 知识库问答 >
问题:

React代理错误:无法将请求/API/从localhost:3000代理到http://localhost:8000(ECONNREFUSED)

锺离卓
2023-03-14

我有一个React前端,它使用jwt与Django后端进行身份验证。后端工作正常,使用django视图连接得很好,但是当我尝试代理React的请求时,它给我一个连接拒绝错误。

代理错误:无法将request/api/auth/token/acture/from localhost:3000代理到http://localhost:8000(ECONNREFUSED)。

连接到http://localhost:8000/api/auth/token/acture/正常工作。并且使用Axios发送POST请求也正常工作并返回令牌JSON。但当我用node代理它时,它就不工作了。

在我的package.json中,我有:

  "proxy": {
    "/api/*":  {
      "target": "http://localhost:8000"
    }
  },

编辑:公开回购。如果安装了docker,就可以轻松运行。(使用1个图像和2个容器)。克隆之后,只需运行docker-compose build,然后运行docker-compose up

Edit2:请求的标头:

*General*
Request URL: http://localhost:3000/api/auth/token/obtain/
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: [::1]:3000
Referrer Policy: no-referrer-when-downgrade

*Response Headers*
HTTP/1.1 500 Internal Server Error
X-Powered-By: Express
Date: Mon, 30 Apr 2018 21:23:17 GMT
Connection: keep-alive
Transfer-Encoding: chunked

*Request Headers
POST /api/auth/token/obtain/ HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Content-Length: 45
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:3000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Content-Type: application/json
Accept: */*
Referer: http://localhost:3000/login
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,fr;q=0.8,ja;q=0.7

共有1个答案

高博涉
2023-03-14

因此,问题是由于Node dev环境和Django dev环境都运行在单独的docker容器中,因此localhost引用的是Node容器,而不是桥接网络。

因此,关键是使用容器链接,这是在使用docker-compose时自动创建的,并将其用作主机名。所以我改成了

"proxy": {
    "/api":  {
        "target": "http://django:8000"
    }
},

只要您使用相同的docker-compose命令启动这两个容器,否则您就必须在docker-compose.yml文件中手动指定external_links。

 类似资料:
  • 我正在使用CreateReact应用程序编写SPA,并使用expressjs服务器作为后端。对于开发,我在端口3000上运行前端测试服务器,在3003上运行后端expressjs测试服务器。 我使用Axios在客户端进行了许多API调用,因此为了便于开发,我定义了代理:http://localhost:3003“在我的包裹里。json 这在我的笔记本电脑上运行正常,但在我的工作站上运行时,我在访问

  • 我正在使用http代理中间件将表单数据从React前端发送到Express server, 但是似乎不起作用 它应该代理 而是抛出一个错误: 邮递http://localhost:3000/api/sendMail404(未找到)。 前端代码: 设置代理。js: 服务器js:

  • 我有一个关于react和nodejs的项目。现在,我在localhost:4000(我的服务器)中对用户进行身份验证,然后重定向到localhost:3000/* 但是重新运行这个错误 访问位于“”的XMLHttpRequesthttp://localhost:3000/login“(已从中重定向”http://localhost:4000/login“)起源”http://localhost:3

  • 在StackOverflow中有很多关于这个错误的问题我都看到了没有一个对我有效。我正在使用react和redux来获取一些产品。我的后端服务器节点运行在端口5000上,每当我尝试获取数据时,我都使用并发来同时启动两台服务器,它使用端口3000,我的前端正在运行。请谁来帮我解决这个问题

  • 使用Spring Boot(后端)和React(前端)开发时,我有一个奇怪的行为。React和Spring boot都在本地主机8080上运行。 当我从React to Spring Boot向localhost:8080发送POST请求时,我在Spring Boot中遇到了以下错误: 当我从localhost:3000(React development build)向localhost:808

  • 所以我已经创建了一个注册身份验证的后端,在邮递员工作良好,我正在让用户到mondoDb以及,我们但是当我尝试创建实际的身份验证在localhost:3000/前端。在控制台它给我错误。如果有人能帮助我,这种错误会出现在哪里。 控制器 路线 注册表