我有一个带有 Django 后端的 React SPA。与大多数 SPA 一样,需要提供一个 index.html 文件。但问题是这个文件是用 nginx 提供的,所以用户没有获得调用 api 所需的 csrf token 。我真的不想提供 index.html,因为它需要将文件与 npm run build
输出的其余部分分开并打破“只需将其放入/static/目录”工作流程,并且也是出于缓存原因。还有其他解决方法吗?
最佳答案
CSRF token 总是随着每次页面加载而更新。它必须由 django 提供服务,因为 django 是提供和验证它的应用程序。将 index.html 文件放在你的 django 模板文件夹中,将它与你的索引 View 一起提供,将 CSRF token 转换为 javascript 代码并在你的 ReactJS 代码中使用它
index.html
...
<body>
<script>
var csrftoken = '{{ csrf_token }}';
</script>
...
</body>
...
关于django - 当 nginx 提供 index.html 时从 Django 获取 CSRF token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51419578/