我在域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,则会随后向域B发送cookie。任何高于低可防止cookie被发送。
虽然这为我解决了这个问题,但对于那些为了获取数据而必须重新配置其隐私设置的用户而言,这并没有解决问题。
我对引擎盖下到底发生了什么感到有些困惑。我认为IE将cookie视为第三方并阻止它被设置(尽管cookie被设置为并被发送到域B),这就是为什么在后续请求中省略它。
我是否可以做些什么来防止IE在没有用户修改浏览器隐私设置的情况下阻止cookie?