6

我在域 A 上托管了一些 JavaScript,它向域 B 上的服务发出 JSONP 请求。对 B/Auth 的请求设置了一个包含身份验证令牌的 cookie。对域 B 上其他服务的后续请求也应包含此 cookie。

在 Chrome 中,这种机制可以完美运行;cookie 被设置、发送并返回数据。在 IE10 中,Set-Cookie 标头随来自 B/Auth 的响应返回,但不包含在后续请求中。

Set-Cookie  MINT_SESSIONTOKEN=MyDST={TOKEN}; expires=Thu, 10-Oct-2013 11:57:45 GMT; path=/; HttpOnly

经过一些谷歌搜索和实验后,我发现如果我将 IE 的隐私设置(Internet 选项 > 隐私)设置为“低”或“接受所有 Cookie”,那么 cookie 会与后续请求一起发送到域 B。任何高于“低”的设置都会阻止 cookie 被发送。

虽然这解决了我的问题,但它并没有解决必须重新配置隐私设置才能获取数据的用户的问题。

我对引擎盖下到底发生了什么感到有点困惑。我认为 IE 将 cookie 视为第三方并阻止它被设置(尽管 cookie 被设置并发送到域 B),这就是为什么在后续请求中省略它的原因。

我可以做些什么来阻止 IE 阻止 cookie 而用户不必修改他们的浏览器隐私设置?

4

1 回答 1