最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery ajax全局函數(shù)處理session過期后的ajax跳轉(zhuǎn)問題

 更新時(shí)間:2016年06月03日 10:59:02   作者:十月陽光  
這篇文章主要介紹了基于jQuery的全局ajax函數(shù)處理session過期后的ajax操作的相關(guān)資料,需要的朋友可以參考下

做web常常需要考慮session過期的問題,session過期就讓頁面跳轉(zhuǎn)到登錄界面去,但是存在這樣一個(gè)問題,當(dāng)頁面過期后,用戶請(qǐng)求后臺(tái)的方式有兩種:傳統(tǒng)方式和異步請(qǐng)求方式,傳統(tǒng)方式倒好解決,請(qǐng)求到后臺(tái),攔截到過期的操作,直接跳轉(zhuǎn),但是異步請(qǐng)求不會(huì)刷新整個(gè)頁面,因此對(duì)session過期的處理也不能按往常的方式,需要另外的操作。

具體思路:攔截器中判斷是否為ajax請(qǐng)求 —— 是ajax請(qǐng)求則返回一個(gè)消息 ——頁面添加一個(gè)全局的ajax處理事件,對(duì)消息進(jìn)行判斷,如果是報(bào)告session過期,則location到登錄頁面

第一步,攔截器判斷是否為ajax請(qǐng)求:

if(request.getHeader("x-requested-with")!=null 
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ 
//是ajax請(qǐng)求,則返回個(gè)消息給前臺(tái)
PrintWriter printWriter = response.getWriter(); 
printWriter.print("{sessionState:timeout}"); 
printWriter.flush(); 
printWriter.close(); 
}else{ 
//不是ajax請(qǐng)求,則直接跳轉(zhuǎn)頁面
}

第二步,設(shè)置全局ajax處理事件,處理session過期的問題,類似于一個(gè)攔截器或者過濾器:

$.ajaxSetup({ 
contentType:"application/x-www-form-urlencoded;charset=utf-8", 
cache:false , 
complete:function(data,TS){ 
//對(duì)返回的數(shù)據(jù)data做判斷,
//session過期的話,就location到一個(gè)頁面
} 
} 
});

這是一個(gè)基于jQuery的異步處理機(jī)制,完整代碼我沒寫,上次在公司寫的代碼,帶不出來,文章里的代碼有些還是在網(wǎng)上找來粘進(jìn)去的,凌晨都過了半小時(shí)了,太困了,記錄下思路而已。

PS:ajax 操作全局監(jiān)測,用戶session失效

jQuery(function ($) {
// 備份jquery的ajax方法 
var _ajax = $.ajax;
// 重寫ajax方法,先判斷登錄在執(zhí)行success函數(shù) 
$.ajax = function (opt) {
var _success = opt && opt.success || function (a, b) { };
var _opt = $.extend(opt, {
success: function (data, textStatus) {
try {
if (data.sessionstatus == false) {
//用戶失效進(jìn)行操作
//return;
} 
} catch (e) {
}
_success(data, textStatus);
}
});
_ajax(_opt);
};
});

相關(guān)文章

最新評(píng)論

太仓市| 舒城县| 益阳市| 延津县| 廉江市| 上林县| 贺州市| 阿勒泰市| 红安县| 大足县| 龙里县| 花莲市| 大化| 教育| 阿克陶县| 北辰区| 旬邑县| 布拖县| 文昌市| 左云县| 宜兰市| 武胜县| 江油市| 宜丰县| 尚义县| 巫溪县| 河北省| 平潭县| 沧源| 洪湖市| 祁门县| 卢龙县| 柳江县| 喀什市| 嘉祥县| 普兰县| 广饶县| 永靖县| 湖州市| 织金县| 谢通门县|