【发布时间】:2021-11-26 04:31:10
【问题描述】:
我有一个 reactjs 项目,它使用 API 向 django-rest-framework 发出请求。 它之前工作正常,但我不确定是什么导致它停止工作。
我已经在使用 django-cors-headers。
我的设置.py:
INSTALLED_APPS = [
...
'rest_framework',
"corsheaders",
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
CORS_ALLOW_ALL_ORIGINS = True
我的 reactjs 请求:
fetch('/api/user/', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(obj)
})
我在 django 终端中遇到的错误:
Forbidden: /api/user/
[06/Oct/2021 01:15:31] "POST /api/user/ HTTP/1.1" 403 58
reactjs 浏览器中的控制台和网络选项卡出错:
// console error:
UserPage.js:65 POST http://localhost:3000/api/user/ 403 (Forbidden)
//network error:
Referrer Policy: strict-origin-when-cross-origin
//Preview in Networks tab:
detail: "CSRF Failed: CSRF token missing or incorrect."
更新 我的 reactjs 终端:
Local: http://localhost:3000
On Your Network: http://172.22.192.1:3000
当我使用 http://172.22.192.1:3000 打开我的 react 项目时,它工作正常,但使用 http://localhost:3000 它仍然无法发送 POST 请求。
【问题讨论】:
-
我不知道为什么有些人反对,如果我遗漏了什么,请告诉我,以便我可以添加。
标签: reactjs django django-rest-framework cors django-cors-headers