Internet Explorer设置跨域cookie以进行授权

时间:2013-04-02 13:04:07

标签: internet-explorer cookies cross-domain

我在下一个域名上有两个应用程序: www.bar.com www.foo.bar.com 。第二个应用程序通过第一个应用程序授权(使用跨域请求) 在此之后,我将cookie设置为浏览器,并且在Internet Explorer中它不起作用:

$.cookie("SESSION_KEY", loginResult.sessionKey, {
        expires: 365,
        path: "/",
        domain: ".bar.com"
});

该代码适用于所有浏览器,不包括Internet Explorer v.9该cookie未设置。我该如何解决?

2 个答案:

答案 0 :(得分:2)

IE,因为市场上只有一个网络浏览器,实现了部分P3P标准(这是关于CORS中的接受cookie)

所以你可以使用服务器响应来设置cookie - 要做到这一点,你必须在服务器响应中设置这个头(设置cookie)(我从PHP symfony项目下面复制粘贴):

$response->headers->set('P3P', 'CP="random_text"');

您还必须记住添加标记' withCredentials = true'您的CORS请求(在其他情况下,任何cookie将从请求/响应中发送/保存)。

答案 1 :(得分:1)

这是由IE设置引起的。在Tools菜单中,选择Internet Options。导航到Security标签。选择Internet网络内容区域,然后单击Custom Level以打开安全设置。

找到Miscellaneous设置。尝试启用Access data sources across domains。您可能需要重新启动IE才能使设置生效。