【问题标题】:Django navigator.sendbeacon csrf protectionDjango navigator.sendbeacon csrf 保护
【发布时间】:2020-04-14 01:39:34
【问题描述】:

navigator.sendBeacon('endpoint/', data) 有问题。我有一个错误禁止(CSRF 令牌丢失或不正确。),因为它通过 POST 方法传递数据。我知道我应该设置 csrf 令牌,但我不知道在这种情况下如何设置它,有人知道应该怎么做吗?我正在使用 Django==2.2.6。

【问题讨论】:

    标签: django csrf django-csrf


    【解决方案1】:

    您应该执行以下操作:

    var data = new FormData();        
    data.append('csrfmiddlewaretoken', '{{csrf_token}}');
    navigator.sendBeacon('endpoint/',data)
    

    如果它是一个 js 文件,那么在你的 html 中你应该创建一个类似的变量

    <script>
        var csrftoken = '{{ csrf_token }}';
    </script>
    

    然后你可以在像这样追加的时候使用它:

    data.append('csrfmiddlewaretoken', csrftoken);
    

    【讨论】:

      猜你喜欢
      • 2012-06-28
      • 1970-01-01
      • 2019-07-14
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 2014-07-12
      • 2016-05-23
      • 2020-12-18
      相关资源
      最近更新 更多