我对navigator.sendBeacon('endpoint/', data)
有疑问。我有一个禁止的错误(CSRF令牌丢失或不正确。),因为它通过POST方法传递数据。我知道我应该设置csrf令牌,但在这种情况下我不知道如何设置它,任何人都不知道应如何设置?我正在使用Django == 2.2.6。
答案 0 :(得分:0)
您应该执行以下操作:
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);