jQuery ajax全局函數(shù)處理session過期后的ajax跳轉(zhuǎn)問題
做web常常需要考慮session過期的問題,session過期就讓頁面跳轉(zhuǎn)到登錄界面去,但是存在這樣一個問題,當(dāng)頁面過期后,用戶請求后臺的方式有兩種:傳統(tǒng)方式和異步請求方式,傳統(tǒng)方式倒好解決,請求到后臺,攔截到過期的操作,直接跳轉(zhuǎn),但是異步請求不會刷新整個頁面,因此對session過期的處理也不能按往常的方式,需要另外的操作。
具體思路:攔截器中判斷是否為ajax請求 —— 是ajax請求則返回一個消息 ——頁面添加一個全局的ajax處理事件,對消息進(jìn)行判斷,如果是報告session過期,則location到登錄頁面
第一步,攔截器判斷是否為ajax請求:
if(request.getHeader("x-requested-with")!=null
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
//是ajax請求,則返回個消息給前臺
PrintWriter printWriter = response.getWriter();
printWriter.print("{sessionState:timeout}");
printWriter.flush();
printWriter.close();
}else{
//不是ajax請求,則直接跳轉(zhuǎn)頁面
}
第二步,設(shè)置全局ajax處理事件,處理session過期的問題,類似于一個攔截器或者過濾器:
$.ajaxSetup({
contentType:"application/x-www-form-urlencoded;charset=utf-8",
cache:false ,
complete:function(data,TS){
//對返回的數(shù)據(jù)data做判斷,
//session過期的話,就location到一個頁面
}
}
});
這是一個基于jQuery的異步處理機(jī)制,完整代碼我沒寫,上次在公司寫的代碼,帶不出來,文章里的代碼有些還是在網(wǎng)上找來粘進(jìn)去的,凌晨都過了半小時了,太困了,記錄下思路而已。
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);
};
});
- Java Web實現(xiàn)session過期后自動跳轉(zhuǎn)到登陸頁功能【基于過濾器】
- 詳解springmvc控制登錄用戶session失效后跳轉(zhuǎn)登錄頁面
- php頁面跳轉(zhuǎn)session cookie丟失導(dǎo)致不能登錄等問題的解決方法
- webix+springmvc session超時跳轉(zhuǎn)登錄頁面
- ajax提交session超時跳轉(zhuǎn)頁面使用全局的方法來處理
- Jsp中解決session過期跳轉(zhuǎn)到登陸頁面并跳出iframe框架的方法
- Session過期后自動跳轉(zhuǎn)到登錄頁面的實例代碼
- Ajax Session失效跳轉(zhuǎn)登錄頁面的方法
- Session過期后實現(xiàn)自動跳轉(zhuǎn)登錄頁面
相關(guān)文章
jQuery使用$獲取對象后檢查該對象是否存在的實現(xiàn)方法
下面小編就為大家?guī)硪黄猨Query使用$獲取對象后檢查該對象是否存在的實現(xiàn)方法。小編覺而挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
基于MVC+EasyUI的web開發(fā)框架之使用云打印控件C-Lodop打印頁面或套打報關(guān)運(yùn)單信息
這篇文章主要介紹了基于MVC+EasyUI的web開發(fā)框架之使用云打印控件C-Lodop打印頁面或套打報關(guān)運(yùn)單信息的相關(guān)資料,非常不錯,需要的朋友可以參考下2016-08-08
分享精心挑選的12款優(yōu)秀jQuery Ajax分頁插件和教程
在這篇文章中,我為大家收集了12個基于 jQuery 框架的 Ajax 分頁插件,這些插件都提供了詳細(xì)的使用教程和演示2012-08-08
JQueryEasyUI datagrid框架的進(jìn)階使用
本篇文章小編為大家介紹JQueryEasyUI datagrid框架的基本使用,有需要的朋友可以參考一下2013-04-04
jQuery解析XML文件同時動態(tài)增加js文件的方法
這篇文章主要介紹了jQuery解析XML文件同時動態(tài)增加js文件的方法,涉及jQuery Ajax調(diào)用及返回函數(shù)中增加js文件的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06
WEB前端開發(fā)都應(yīng)知道的jquery小技巧及jquery三個簡寫
一個簡單技巧的集合,幫你提升 jQuery 技能,下面腳本之家小編給大家收集整理了web前端開發(fā)都應(yīng)知道的jquery小技巧,對jquery小技巧感興趣的朋友一起學(xué)習(xí)吧2015-11-11
使用CSS和jQuery模擬select并附提交后取得數(shù)據(jù)的代碼
使用CSS和jQuery模擬select并實現(xiàn)提交后取得數(shù)據(jù),詳細(xì)實現(xiàn)及截圖如下,感興趣的朋友可以參考下2013-10-10

