【发布时间】:2020-04-14 01:39:34
【问题描述】:
navigator.sendBeacon('endpoint/', data) 有问题。我有一个错误禁止(CSRF 令牌丢失或不正确。),因为它通过 POST 方法传递数据。我知道我应该设置 csrf 令牌,但我不知道在这种情况下如何设置它,有人知道应该怎么做吗?我正在使用 Django==2.2.6。
【问题讨论】:
标签: django csrf django-csrf
navigator.sendBeacon('endpoint/', data) 有问题。我有一个错误禁止(CSRF 令牌丢失或不正确。),因为它通过 POST 方法传递数据。我知道我应该设置 csrf 令牌,但我不知道在这种情况下如何设置它,有人知道应该怎么做吗?我正在使用 Django==2.2.6。
【问题讨论】:
标签: django csrf django-csrf
您应该执行以下操作:
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);
【讨论】: