我按照示例:http://arunranga.com/examples/access-control/credentialedRequest.html
从此页面:http://arunranga.com/examples/access-control/
Firefox中的示例工作,但不是Safari,有人尝试过实施CORS跨域cookie处理,并在Safari中取得成功吗?
感谢。
答案 0 :(得分:12)
Safari还会阻止未直接访问过的网站的Cookie。您可以在安全设置中看到。它的默认设置是接受cookie:“仅限我访问过的网站”。
这将有助于您入门。 Setting cross-domain cookies in Safari
我让jsonp使用上面链接中的方法在safari中工作。因此假设cookie可以在CORS上下文中工作,但是在这个阶段它似乎不起作用。此外,更改安全设置似乎没有任何效果。
Safari可能会要求返回更严格的标题集吗?
答案 1 :(得分:7)
这听起来像是Safari的bug。我刚刚验证了Safari中没有设置跨域cookie。跨域Cookie在Chrome中正在运行,因此可以在WebKit中修复,而最新的还没有进入Safari。我还没有看到关于此的Safari或WebKit错误报告。
答案 2 :(得分:0)
我在Heroku的不同子域上使用API / UI应用程序遇到此问题,例如my-api.herokuapp.com和my-ui.herokuapp.com,会话cookie已设置为my-api.herokuapp.com。在这种情况下,即使访问my-api.herokuapp.com似乎也没有帮助其默认的“仅限我访问过的网站”政策@ 23inhouse提到:http://content.screencast.com/users/artemv/folders/Jing/media/4dfc08d7-0e9c-483f-a272-bbe91549ea95/00000759.png。
然而,当我们为这些应用程序分配了一个自定义域名时,Safari工作正常,它变成了my-api.mydomain.com和my-ui.mydomain.com - 所以看起来Safari对流行的托管商的信任度特别低子域。在这种情况下,不需要直接访问my-api.mydomain.com。