国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 09:48:48
字體:
供稿:網(wǎng)友

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

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

第一步,攔截器判斷是否為ajax請求:

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

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

$.ajaxSetup({ contentType:"application/x-www-form-urlencoded;charset=utf-8", cache:false , complete:function(data,TS){ //對返回的數(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);};});

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍山县| 镇远县| 托克逊县| 剑河县| 玉林市| 临泽县| 富锦市| 陆河县| 四川省| 石屏县| 贵阳市| 合肥市| 洪泽县| 黑龙江省| 天柱县| 丹巴县| 岳普湖县| 南投县| 五寨县| 葫芦岛市| 施秉县| 陆丰市| 泗洪县| 洞头县| 洛川县| 安新县| 都兰县| 辽阳县| 天台县| 隆德县| 铁力市| 临清市| 新竹县| 上高县| 沙雅县| 河曲县| 奈曼旗| 龙游县| 尚义县| 中宁县| 桂阳县|