【问题标题】:How to add CSRF token for Ajax Request not using jQuery如何为不使用 jQuery 的 Ajax 请求添加 CSRF 令牌
【发布时间】:2019-11-30 06:54:40
【问题描述】:

我想使用 Ajax 请求将一些数据从 javascript 文件发送到我的 Django 应用程序中的视图文件。但是我只使用 Javascript 来执行此操作,因为我不熟悉 jQuery,并且现在不知道如何添加 CSRF 令牌。

这是我的 Javascript 代码:

    const request = new XMLHttpRequest();
        request.open("POST", "/list");
    var csrftoken = Cookies.get('csrftoken');

    let data = {
        items: JSON.stringify(items)
    }
    request.setRequestHeader( 'X-CSRF-TOKEN', csrftoken);
    request.send(data);

我曾尝试使用Cookies.get('csrftoken')getCSRFTokenValue(),但不确定一旦获得令牌后如何发送。

在开发者控制台中显示:Failed to load resource: the server responded with a status of 403 (Forbidden)

【问题讨论】:

  • request.setRequestHeader( 'X-CSRF-TOKEN', theToken );
  • 它仍然显示禁止(csrf 令牌丢失或不正确)

标签: javascript django ajax csrf


【解决方案1】:

如果其中没有表单标签,则必须添加 csrf_token,因此必须在视图之前添加装饰器

@csrf_exempt 
Def your_view(request):

【讨论】:

    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 2018-07-28
    • 2018-08-09
    • 2015-12-20
    • 2014-11-04
    • 2015-04-09
    • 2013-09-13
    • 1970-01-01
    相关资源
    最近更新 更多