由于我是用的ff瀏覽器,一直沒(méi)發(fā)現(xiàn)什么問(wèn)題。上個(gè)禮拜提交給用戶(hù)看的時(shí)候,說(shuō)用IE登錄完之后無(wú)效,大驚。結(jié)果還真的是這樣。。很?chē)?
登錄代碼如下:
復(fù)制代碼 代碼如下:
//從服務(wù)器查詢(xún)是否存在session
j.ajax({
type:"GET",
url:"sessioncheck.asp",
data:"",
timeout: 1000,
error: function(){
alert('sorry, server is busy now!');
},
success:function(comments_data){
if(comments_data == 1){
el.createDialog(opts);
j.startOver();
}
else{
var sql = selectSQL(searchkey,stype);
window.location.href = sql;
}
}
});
大致是這樣 sessioncheck.asp里面無(wú)非就是去查session,代碼如下:
復(fù)制代碼 代碼如下:
if session("username") = "" then
Response.Write("1")
else
Response.Write("2")
end if
結(jié)果就是用IE這個(gè)session("username")死活沒(méi)有,timeout設(shè)置了也沒(méi)用。
去網(wǎng)上查了半天,發(fā)現(xiàn)同樣問(wèn)題的還挺多,最后查到原因:緩存問(wèn)題。
異步get獲取時(shí),如果url不變,是直接調(diào)用的緩存中的信息,然后就導(dǎo)致了一直獲得不到session里的值。
解決方法那很簡(jiǎn)單了,google "asp 清除緩存" 一大堆。
最后是在sessioncheck.asp里添加了一段,如下:
復(fù)制代碼 代碼如下:
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl="no-cache"
if session("username") = "" then
Response.Write("1")
else
Response.Write("2")
end if
您可能感興趣的文章:- ajax session過(guò)期問(wèn)題的幾個(gè)解決方案
- 前臺(tái)js改變Session的值(用ajax實(shí)現(xiàn))
- ajax實(shí)現(xiàn)session不過(guò)期(避免頁(yè)面過(guò)期的現(xiàn)象)
- ajax提交session超時(shí)跳轉(zhuǎn)頁(yè)面使用全局的方法來(lái)處理
- ajax請(qǐng)求Session失效問(wèn)題
- 如何解決Ajax訪問(wèn)不斷變化的session的值不一致以及HTTP協(xié)議中的GET、POST的區(qū)別
- Ajax請(qǐng)求session失效該如何解決
- jQuery ajax全局函數(shù)處理session過(guò)期后的ajax跳轉(zhuǎn)問(wèn)題
- Ajax Session失效跳轉(zhuǎn)登錄頁(yè)面的方法