【问题标题】:CSRF Failed after sent correct CSRF token发送正确的 CSRF 令牌后 CSRF 失败
【发布时间】:2016-06-19 19:21:45
【问题描述】:

我正在使用 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 请求在其他页面中工作。

【问题讨论】:

    标签: django-rest-framework csrf


    【解决方案1】:

    Django 文档说,您可以将 csrf-token 放在 AJAX 请求的 X-CSRFToken 标头中:https://docs.djangoproject.com/en/dev/ref/csrf/#ajax

    【讨论】:

    猜你喜欢
    • 2014-12-25
    • 2014-02-26
    • 2021-10-01
    • 2020-09-19
    • 2021-07-14
    • 2012-05-16
    • 2016-12-31
    • 1970-01-01
    • 2019-03-29
    相关资源
    最近更新 更多