【发布时间】:2018-11-11 18:08:11
【问题描述】:
我正在使用 React + Django 并尝试使用 axios 发出发布请求,但由于 csrf 失败。我已经尝试了互联网上发布的所有类似问题的答案,但由于某些奇怪的原因,它们都没有工作。
//Django View
def createUser(request):
username = request.POST['username']
email = request.POST['email']
resp = {
'username' : username,
'email' : email
}
return JsonResponse(resp)
//Axios Post
axios.post('http://localhost:8000/api/createUser/',{
username : 'xyz',
email : 'xyz@gmail.com'
},
{
headers: {
Content-Type': 'application/json',
}
});
尝试添加默认值
axios.defaults.xsrfHeaderName = "X-CSRFTOKEN";
axios.defaults.xsrfCookieName = "csrftoken";
但仍然让 csrf 失败。我知道我可以在视图上执行 @csrf_exempt 但我想保留 csrf 检查。
【问题讨论】:
-
你确定是
X-CSRFTOKEN而不是X-CSRF-TOKEN -
@Advaith 我遵循了这个 SO 答案,上面写着 X-CSRFTOKEN stackoverflow.com/questions/39254562/…