有沒有人在做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()方法後,問題解決了