【发布时间】:2018-10-10 23:31:09
【问题描述】:
我有一个使用 jwt 向 Django 后端进行身份验证的 React 前端。后端工作正常,使用 django 视图连接得很好,但是当我尝试代理来自 React 的请求时,它给了我一个 Connection Refused 错误。
代理错误:无法将请求 /api/auth/token/obtain/ 从 localhost:3000 代理到 http://localhost:8000 (ECONNREFUSED)。
连接到http://localhost:8000/api/auth/token/obtain/ 工作正常。而且用axios发送POST请求也能正常工作,返回token json。但是当我用节点代理它时,它不起作用。
在我的package.json 我有:
"proxy": {
"/api/*": {
"target": "http://localhost:8000"
}
},
编辑:Public repo。如果您安装了 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
【问题讨论】:
-
如果您发布您的 Django 和 Node 代码会很有帮助。
-
@MattMorgan 对不起。已添加。
-
不确定,无法快速在本地运行。 CRA 文档表明您的
target模式可能是错误的。您是否尝试过:"/api"而不是"/api/*"...想知道它是否在尝试匹配api/only-one-more-element -
@MattMorgan 不适用于
/api、/api/或/api/*,或仅适用于"proxy":"http://localhost:8000"。
标签: node.js django reactjs axios