ASP中用ajax方式獲得session的實(shí)現(xiàn)代碼
更新時(shí)間:2011年05月27日 00:43:09 作者:
前期做的時(shí)候,登錄方式順手用了ajax來做,登錄前先判斷在session中是否存在值,如果存在,那么無需登錄;如果不存在,那就彈出登錄頁面登錄。
由于我是用的ff瀏覽器,一直沒發(fā)現(xiàn)什么問題。上個(gè)禮拜提交給用戶看的時(shí)候,說用IE登錄完之后無效,大驚。結(jié)果還真的是這樣。。很囧
登錄代碼如下:
//從服務(wù)器查詢是否存在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里面無非就是去查session,代碼如下:
if session("username") = "" then
Response.Write("1")
else
Response.Write("2")
end if
結(jié)果就是用IE這個(gè)session("username")死活沒有,timeout設(shè)置了也沒用。
去網(wǎng)上查了半天,發(fā)現(xiàn)同樣問題的還挺多,最后查到原因:緩存問題。
異步get獲取時(shí),如果url不變,是直接調(diào)用的緩存中的信息,然后就導(dǎo)致了一直獲得不到session里的值。
解決方法那很簡單了,google "asp 清除緩存" 一大堆。
最后是在sessioncheck.asp里添加了一段,如下:
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
登錄代碼如下:
復(fù)制代碼 代碼如下:
//從服務(wù)器查詢是否存在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里面無非就是去查session,代碼如下:
復(fù)制代碼 代碼如下:
if session("username") = "" then
Response.Write("1")
else
Response.Write("2")
end if
結(jié)果就是用IE這個(gè)session("username")死活沒有,timeout設(shè)置了也沒用。
去網(wǎng)上查了半天,發(fā)現(xiàn)同樣問題的還挺多,最后查到原因:緩存問題。
異步get獲取時(shí),如果url不變,是直接調(diào)用的緩存中的信息,然后就導(dǎo)致了一直獲得不到session里的值。
解決方法那很簡單了,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過期問題的幾個(gè)解決方案
- 前臺(tái)js改變Session的值(用ajax實(shí)現(xiàn))
- ajax實(shí)現(xiàn)session不過期(避免頁面過期的現(xiàn)象)
- ajax提交session超時(shí)跳轉(zhuǎn)頁面使用全局的方法來處理
- ajax請(qǐng)求Session失效問題
- 如何解決Ajax訪問不斷變化的session的值不一致以及HTTP協(xié)議中的GET、POST的區(qū)別
- Ajax請(qǐng)求session失效該如何解決
- jQuery ajax全局函數(shù)處理session過期后的ajax跳轉(zhuǎn)問題
- Ajax Session失效跳轉(zhuǎn)登錄頁面的方法
相關(guān)文章
asp中獲取內(nèi)容中所有圖片與獲取內(nèi)容中第一個(gè)圖片的代碼
用asp獲取內(nèi)容中的圖片與獲取內(nèi)容中的第一個(gè)圖片地址,主要是cms中保存內(nèi)容中的圖片需要用得到,使用的是正則的方法。2011-01-01用asp實(shí)現(xiàn)把文件打包成Xml文件包,帶解包的ASP工具附下載
用asp實(shí)現(xiàn)把文件打包成Xml文件包,帶解包的ASP工具附下載...2007-06-06Active Server Pages 錯(cuò)誤 ''ASP 0201'' 修復(fù)方法
網(wǎng)上很多其他的解決方法, 但是我試了幾個(gè)小時(shí), 都沒有解決問題, 最后是通過這個(gè)方法解決的.2010-07-07ajax XMLHTTP Post Form時(shí)的表單亂碼綜合解決
用XMLHTTP Post Form時(shí)的表單亂碼有兩方面的原因——Post表單數(shù)據(jù)時(shí)中文亂碼;服務(wù)器Response被XMLHTTP不正確編碼引起的亂碼。換句話說,本文主要解決兩個(gè)問題——怎樣正確Post中文內(nèi)容&怎樣正確顯示得到的中文內(nèi)容。2008-05-05利用ASP實(shí)現(xiàn)在線生成電話圖片效果腳本附演示
利用ASP實(shí)現(xiàn)在線生成電話圖片效果腳本附演示...2007-11-11Server.Execute方法執(zhí)行指定的ASP程序
Server.Execute方法執(zhí)行指定的ASP程序...2007-09-09關(guān)于靜態(tài)頁生成問題 突破form數(shù)量限制
關(guān)于靜態(tài)頁生成問題 突破form數(shù)量限制...2006-09-09