【发布时间】:2018-09-03 18:41:31
【问题描述】:
我正在尝试使用 React 和 Axios 向 Django 服务器发出发布请求。但是,我在服务器端收到了重定向 302。
只是按照这篇文章中的所有建议CSRF with Django, React+Redux using Axios 失败:(
但是,到目前为止,我所做的如下: 坐上默认的 axios CookieName 和 HeaderName(在 javascript 端):
axios.defaults.xsrfHeaderName = "X-CSRFToken";
axios.defaults.xsrfCookieName = "XCSRF-Token";
在settings.py 中也有这个:
CSRF_COOKIE_NAME = "XCSRF-Token"
这是发布请求的样子:
axios(
{
method: 'post',
url: `/api/${selectedEntryType}_entry`,
data: {
"test": "test"
},
headers: {
'X-CSRFToken': document.cookie.split('=')[1],
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json',
}
}
)
我尝试过的另一件事是从 Django rest api UI 发出 post 请求:
它确实成功了。
当我从 UI 和 JS 发出请求时,请求标头中的唯一区别是:
Accept、Content-Length 和 Referer,我看不出它们怎么会有问题。
请帮忙。
【问题讨论】: