HTTP_X_CSRFTOKEN标头与csrftoken cookie内部的内容不匹配。

如何检查Cookie?跨域请求的“响应”标头中未显示Set-Cookie。

我已经按照以下说明进行操作:

CSRF with Django, React+Redux using Axios

有趣的是,我发现服务器请求标头上的“ X-CSRFTOKEN”转换为“ HTTP_X_CSRFTOKEN”。

在localhost下的开发环境中可以正常工作(尽管我使用2个不同的端口-一个用于django,另一个用于我的前端)。

更新:

似乎没有为跨域rquest正确设置csrktoken cookie(尽管浏览器在“请求标头”中显示了它),因此X-CSRFTOKEN不会被发送。

我最终添加了一个API调用,以使用GET请求返回当前的csrftoken,然后使用X-CSRFTOKEN标头将其发送回。

最佳答案

您将必须通过CORS X-CSRFTOKEN指令访问Access-Control-Expose-Headers标头。例:

Access-Control-Expose-Headers: X-CSRFTOKEN


此标头必须由您的API或Web服务器设置,以便浏览器在CORS预检请求期间可以看到它。

09-04 21:48