由于csrf,axo发布到django失败了

时间:2018-06-01 14:53:50

标签: django reactjs axios

我正在使用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检查。

1 个答案:

答案 0 :(得分:0)

连同X-CSRFToken标头,还使用withCredentials: true

将cookie包含在axios请求中

My original answer