发送正确的CSRF令牌后,CSRF失败

时间:2016-03-06 05:25:29

标签: django-rest-framework csrf

我正在使用django restframe工作,当我使用浏览器发送PUT请求时,它运行良好。但是当我像以前一样使用ajax发送请求时,它告诉我csrf令牌丢失或无法纠正。

我的jQuery代码如下所示:

$.ajax({
    url: "/api/users/1/",
    type: "PUT",
    datatype: "json",
    data:  {csrfmiddlewaretoken: csrf_token, "user_gender": 2, "user_details": 23 },
....

在Chrome控制台中

csrfmiddlewaretoken:wUlPIaEmZd2FMA2ob9VRSVKWpOf6EQHn
user_gender:0
user_details:111asdfasdfsdf

我是console.log(csrf_token),它和我在浏览器中使用的一样。

我在这里关注了Bryan Django CSRF check failing with an Ajax POST request,它使用POST请求在其他页面中工作。

1 个答案:

答案 0 :(得分:1)

Django文档说,你可以在你的AJAX请求中的 X-CSRFToken 标题中加入csrf-token:https://docs.djangoproject.com/en/dev/ref/csrf/#ajax

相关问题