如何在 xmlHttpRequest 中发送 csrf 令牌?

问题描述

使用 AjaxxmlHttpRequest 我想从 django 后端下载 excel 文件。后端在内存中创建文件并返回给用户

根据这个 answer 我应该用于这个 xmlHttpRequest,但是没有信息如何在 post request 中设置 csrf 中间件令牌

我试过了:

像这样设置 request.setRequestHeaderrequest.setRequestHeader('x-csrf-token,window.CSRF_TOKEN) - 令牌丢失

在数据中:

request.send({'csrfmiddlewaretoken': window.CSRF_TOKEN,'req': 'ExportAllMessages'});

我找不到任何适用于 Ajax 的解决方案。

解决方法

CSRF 令牌的位置因项目而异。只需查看页面模板并了解其保存方式即可。可能的地点是:

    <meta> 中的
  • <head> 标签
  • <input> 表单中的 type="hidden" 字段
  • 饼干
  • 全局变量,您的情况并非如此