问题描述
- 登录模块实现自动登录功能对IE浏览器失效的问题
-
有没有人在做web项目过程中遇到过类似的问题,就是登录模块有一个自动登录的功能,勾选后下次打开浏览器进入网页时,只要cookies没过期
就不需要再次登录。很多网站都有这个功能吧
在chrome浏览器下没有发生任何问题,
但是用IE浏览器就会出现自动登录失效的问题,
能在chrome下成功,说明程序主体啊啥都没问题的,
问题就在在于IE浏览器!(又是令人发指的IE!
但我不知道问题具体会出在哪一步,
我自己猜想有3方面的可能:
1是可能出在 勾选自动登录的那个小框框,在IE浏览器下样式失效,根本没有把勾选了自动登录的值true传给后台。相关jsp如下:<div class="pt10"> <input name="" type="checkbox" id="loginChecked"> 自动登录 </div>
有没有jsp大神帮看下这个 input name="" type="checkbox" 在IE浏览器下生效吗?
2是向IE浏览器存cookies的环节可能有问题,相关代码如下:
private void setLoginRedis(HashCommands commands,Object key, Object hashKey, Object value) { commands.put(RedisBusinessCode.WEB_LOGIN_LIM.getCode(), key, hashKey, value); //保存到redise commands.expire(RedisBusinessCode.WEB_LOGIN_LIM.getCode(), key, 1, TimeUnit.HOURS); }
这个可能出问题吗?我不懂 不同浏览器的cookies机制是否存在不兼容问题
3是没有从IE浏览器的cookies读取到需要的值,这个其实同2一样,就是不同浏览器的cookies机制是否存在不兼容问题,因为在chrome浏览器下没出问题,说明代码是没错的,只能从IE这里找原因了
会不会还存在其他环节出问题的可能?
解决方案
问题最终我自己解决了,
原始代码中生成cookie后向浏览器写入用的是response.addHeader()方法,
向数据包头部写入cookie的字符串数据,这个方法我发现对IE浏览器无效啊,
于是改成response.addCookie()方法后,问题解决了
解决方案二:
实现自动登录功能及遇到的问题
解决方案三:
浏览器兼容性或你的IE浏览器设置了每次关闭清理cookies
解决方案四:
可能是浏览器版本问题,或者是Ie兼容性不了,建议升级一下
解决方案五:
可能是浏览器版本问题,或者是Ie兼容性不了,建议升级一下