我已经按照Django docs (使用Django1.3)中的描述设置了CSRF。它适用于FF和Safari,但在IE9上我得到
<div id="summary">
<h1>Forbidden <span>(403)</span></h1>
<p>CSRF verification failed. Request aborted.</p>
</div>在Ajax请求的响应头中,我发现
Set-Cookie csrftoken=8db3637951243ffb591e6b2d6998ed03; expires=Fri, 14-Sep-2012 08:01:52 GMT; Max-Age=31449600; Path=/当以正常的形式使用它时,它可以在IE9中工作(即不涉及Ajax )。
我在nginx/1.1.2后面使用Django。
有没有提示我这里遗漏了什么?
发布于 2011-11-03 15:15:56
如果您的表单位于iframe内,则原因可能是IE默认的阻止第三方cookie的策略。你可以
中的变通方法#3
Django的ticket #17157建议在文档中添加关于此问题的注释。
发布于 2013-04-12 22:51:28
我也有同样的问题,我的问题是我没有指定表单操作属性。IE显然不允许这样做。
发布于 2015-02-24 20:01:13
在Django的标签#17157 (感谢@akaihola提供的链接)中指出,问题在于Internet Explorer默认阻止第三方cookie。因此,您可以在浏览器设置中为所有站点或仅为您的站点启用第三方cookies。以下是如何在IE 7(来自this link)中做到这一点:
隐私单击"Tools“菜单,然后单击"Internet Options"
选项1:为所有站点启用第三方cookie
单击"Third-party cookie“下的"Override automatic cookie handling"
或
选项2:仅为Feedjit.com启用第三方cookies
Cookie单击“Sites”
-domain.com”并单击“OK”
https://stackoverflow.com/questions/7441889
复制相似问题