IE和Firefox下的Cookie兼容问题

这个帖是继于"基于二级域名下Cookie共享的SSO"后续发现的问题,测试结果是这样的:用Firefox可以登录,使用IE后,部分可以登录,部分不可以登录。最初是怀疑IE的Cookie功能没有打开引起的,测试到最后这个原因也排除了。

既然是通过Cookie实现SSO,那认证必然是保存在Cookie中,Cookie文件就是保存在本地的缓 存目录下(firefox下的Cookie是加密的,查不到Cookie文件),但是奇怪的是IE登录后,缓存目录下根本没有发现生成的Cookie文 件,这就是不能登录的根本原因。

为什么没有生成Cookie文件呢,要不没有生成,要不生成了又被IE销毁了。前者不可能发生,如果不生成 Cookie,那为什么有些浏览器行,firefox更是全部可以,只能怀疑第二个原因,Cookie是被IE自动销毁了,IE销毁Cookie是根据 Cookie的生命期,例如,Cookie是2009-01-01 01:00:01生成的,有效时间是5个小时,那到了2009-01-01 06:00:01后,IE就会销毁此Cookie文件。对于IE而言,Cookie的有效时间段是理解为客户端的时间与服务器端时间的间隔,而对于 FireFox而言,Cookie的有效时间完全由服务器端的时间决定,Firefox的cookie不依赖于服务器的时间,可见,FireFox是充分 考虑到了服务器端与客户端的时差问题。

立即检查系统的时间,发现系统时间和服务器没有差别,有一点纳闷,影响时间的还有一个时区(timezone),果然原因找到,时区设定错误。时区设定不正确也会影响IE对Cookie生命期的计算,因为Cookie的生命期是基于GMT计算的。

原因总结:没有登录成功的IE,是因为没有设定正确的时区和时间,导致IE错误将保存认证信息的Cookie文件自动销毁了,所以无法登录。

我这边发现的问题是,ie没有把cookie,带个下一个跳转的域名,不知道是Cookie文件自动销毁了,还是不支持?

时间: 2024-08-03 15:35:47

IE和Firefox下的Cookie兼容问题的相关文章

Javascript下IE与Firefox下的差异兼容写法总结

http://www.jb51.net/article/23923.htm 总结一部分IE和Firefox的javascript差异写法,对于像书写多浏览器兼容性更好的代码,可以参考下. window.event对象差异 IE:有window.event对象 FF:没有window.event对象.可以通过给函数的参数传递event对象.如onmousemove=doMouseMove(event) 获取鼠标当前坐标 IE:event.x和event.y. FF:event.pageX和even

window.frames[]在Firefox下无法兼容的解决方式

html代码段: 1 <iframe id="fr" src="ProjectTree.aspx?IsFree=true&f=yes&IsCheckProjectAuthority=false" frameborder="0" scrolling="no" style="height:100%; width: 100%;"></iframe> JavaScript代码

Firefox下table单元格td设计relative定位失效解决方案(转)

问题描述: 默认情况下,table的单元格td的display为table-cell,在IE 给td设置position:relative,然后给它包含的一个容器使用position:absolute进行定位是有效的,但在FF下却不可以. 但是在IE下,position:absolute的容器的z-index总是比td的z-index低,td层总是在 position:absolute的容器的上面 发生条件: 1. IE6.IE7.IE8和FF浏览器 2. 使用td默认样式,设置td的posit

[转]IE9.0或者360下js(JavaScript、jQuery)不能正确执行(加载),按F12后执行正常;Firefox下ajax的success返回数据data(json、string)无法获取

兼容问题1: 页面的分享等插件加载不全,并无法点击. 兼容问题2: IE下页面选择器(#id..class.etc.)绑定click事件无法访问到,后台springmvc方法,也无法获取ajax的success方法返回值data. 兼容问题3: 在IE和Google下能够获取,ajax的success返回的数据data,但firefox下获取不到. 兼容问题4: 页面跳转,或url进入,js代码不能正确执行,如果按了F12后(开启F12),JavaScript(加载)事件可以正常响应,一切都正常

IE下javascript cookie path设置Bug

项目中设置完cookie,在Firefox下顺利测试通过.IE测试出现问题,经定位发现是Javascript设置 Cookie 时的 path 有问题.IE下Cookie设置在 /或者URL所在路径时正常,如果Cookie值作用域在当前URL下,则IE下javascript 无法获取到设置的Cookie值. 看下面演示代码,注意下面的path 区别: var cookie_name = "name"; var cookie_value = "value"; expi

JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结 【转】http://blog.csdn.net/uniqer/article/details/7789104

1.兼容firefox的 outerHTML,FF中没有outerHtml的方法. 代码如下: if (window.HTMLElement) { HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML) { var r=this.ownerDocument.createRange(); r.setStartBefore(this); var df=r.createContextualFragment(sHTM

slider.js 滑动和点击事件在firefox下报错 event is not defined

在使用layui的slider滑块控件的时候,firefox遇到了event is not defined 的情况.追究原因是因为layui的layui.js 的滑块功能依赖于silder.js,而官方的slider.js的源码是有问题的.格式化后: 会发现,event是undefined.所以我们要改成兼容性写法.这样无论在哪个浏览器下,都会兼容. 在173-174 line之间写下这句 var ev = e || window.event; 将175行条件判断的两个event 改成 刚刚初始

Firefox下代码触发a标签的click事件无效

通过一次导出功能是让自己如何一步一步掉坑最后又是怎么爬起来的 在页面中通过document.createElement('a');创建一个a标签,然后给a标签的href属性赋url,通过代码触发a标签的click事件请求后台,在Chrome浏览器中请求正常,但是在Firefox中始终无效,debugger发现代码也走到了a.click()方法,但是就是没反应.代码如下: $.ajax({ url: Config.ApiUrl + "TZTZ/DowloadFile", type: &q

FontAwesome在Firefox下建立静态页面不显示的情况

1.在相对路径时发现firefox的问题(但是在Chrome下没有问题),还需进一步确认. 最开始是直接把FontAwesome的less直接替换掉Bootstrap的glyphicons字体,编译后在firefox下一直是不显示,经过单独引用FontAwesome的css及font才发现如果换成第14行的路径写法是可以正常显示的,如图: 2.情景描述 以往做静态页面原型的文件的文件结构是这样的: folder |----css |----images |----js index.html ..