我正在尝试使用React和Axios向Django服务器发出一个发布请求.但是,我在服务器端获得了重定向302.
刚刚关注这篇文章中的所有建议CSRF与Django,React + Redux使用Axios 失败:(
然而,什么是迄今为止我所做的是以下几点:周六默认Axios公司CookieName和HeaderName(在JavaScript端):
axios.defaults.xsrfHeaderName = "X-CSRFToken";
axios.defaults.xsrfCookieName = "XCSRF-Token";
Run Code Online (Sandbox Code Playgroud)
得到了这个settings.py:
CSRF_COOKIE_NAME = "XCSRF-Token"
Run Code Online (Sandbox Code Playgroud)
以下是帖子请求的样子:
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',
}
}
)
Run Code Online (Sandbox Code Playgroud)
我尝试的另一件事是从Django rest api UI发出post请求:

它确实成功.
在请求头,当我提出请求从UI和JS的唯一区别是:
Accept,Content-Length,和Referer,我不明白他们怎么可能会有问题.
请帮忙.