IE10似乎以不同于其他主流浏览器(IE8,IE9,Firefox,Chrome,Safari)的方式处理Cookie和子域名。默认情况下,IE10跨子域共享Cookie
我们使用子域名广泛的测试环境,如:
- user1.devel.example.com
- user2.devel.example.com
- qa.example.com
我们的生产环境居于顶端,例如example.com(在技术上也在www.example.com上)。
我们使用php setcookie($name, $value, $expires)
函数天真地(没有明确的路径或域被指定)来设置一个cookie,然后清除cookie(当用户注销时)通过给该值分配一个空字符串。这一直运行良好,每个独特的子域使用自己的cookie。
IE10现在“共享”在所有子域中设置的顶级域名(TLD)中设置的cookie。我们观察到的最初症状是没有人能够注销子域。我们观察了几件事情:
- 尽管它共享该值,但没有子域能够清除cookie。
- 当TLD清除cookie时,它也会立即从所有子域中删除。
有没有其他人观察到类似的行为,IE10如何存储/应用cookie相对于子域?是否有任何解决方法,除了明确发送初始Set-Cookie头时cookie应用于哪个域?
我已经经历了IE10和饼干的烦恼。我不知道你的问题是否一样。看到这里我的问题的详细信息:http://stackoverflow.com/questions/15856886/ajax-on-ie10-dont-send-cookies – jmcollin92 2013-04-06 22:49:30
此行为是存在于IE8和IE9了。 – 2013-09-18 14:05:32