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预检请求期间可以看到它。