在使用单点登录的时候遇到了这个问题,在tuan.xxx.com下存在一个名为name的cookie,同时在.xxx.com父域下也存在同名的name的cookie。在获取cookie时,在IE和Firefox中出现了不同的结果,导致单点登录在ie下面失败,火狐下面正常。
情况分析:
tuan.xxx.com下的页面读取cookie的情况如下:
1.在IE中,会将子域的cookie和父域的cookie合并在一起读出,谁在前就取那个的值,我的情况是是主域(xxx.com)在前生成,读取的就是之主域的值。
2.在Firefox中,tuan.xxx.com子域下的页面读取cookie的情况规则相同,tuan.xxx.com子域的name优先读取。
主要的原因是tuan.xxx.com和xxx.com使用来同样名字的cookie引起了这个问题,明白原因后,重命名了主域的cookie名称解决了问题。
在以后的开发中要注意避免这样的问题,cookie命名前面加上前缀以示区别,避免不必要的问题产生。