与Microsoft Edge和IE11的CSRF问题

时间:2016-09-19 14:01:20

标签: javascript ajax django internet-explorer-11 microsoft-edge

我有一个仅在MS Edge和IE11中出现的CSRF令牌问题 - 它在Chrome,Firefox甚至IE9中都能正常运行。

只有在通过Ajax进行Http发布时才会出现问题。它给了我Http403禁止错误。

我在这里关注了Django的指南: https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/

我是否需要为IE11 / MS Edge添加一些额外的标头?还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

2小时后,我自己找到了答案......

对于那些可能与Microsoft Edge和IE11存在相同问题的用户,修复方法在于设置CSRF_COOKIE_DOMAIN。

我尝试这样设置:

CSRF_COOKIE_DOMAIN = "subdomain.domain.com"

然而,这不起作用,即使它是一个子域网站。设置它就像一个魅力:

CSRF_COOKIE_DOMAIN = ".domain.com"