Internet Explorer设置跨域cookie授权



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

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

该代码适用于除Internet Explorer v.9以外的所有浏览器饼干没凝固。我该怎么修理它?

这是由于IE设置。在"Tools"菜单中选择"Internet Options"。导航到Security选项卡。选择"Internet web内容区",单击"Custom Level",打开"安全设置"。

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

IE作为市场上唯一的浏览器,部分实现了P3P标准(即在CORS中接受cookie)

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

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

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

相关内容

  • 没有找到相关文章

最新更新