Ajax请求session超时处理流程(DWZ)
DWZ-Java框架Ajax請求session超時處理思路: ??? 1)SessionValidateFilter統(tǒng)一驗證session是否超時 ??? 2)SessionValidateFilter中判斷請求是否為ajax請求 ??? 3)ajax請求session超時返回一個json {"statusCode":"301", "message":"Session Timeout! Please re-sign in!"} ??? 4)dwz js框架根據(jù)statusCode==301,處理是跳轉(zhuǎn)到登陸頁面或者彈出登錄dialog
-------------------------------------------------------------------
java服務(wù)器端處理: ??? SessionValidateFilter中修改:????
-------------------------------------------------------------------
js客戶端處理:
session超時跳轉(zhuǎn)到登陸頁面還是彈出登錄dialog,在DWZ UI初始化時設(shè)置:
ajax load頁面碎片處理:
??? ajax請求統(tǒng)一使用dwz的loadUrl()方法,不能使用jquery自帶的load(). ??? 當(dāng)客戶端調(diào)用loadUrl()并且session超時了,跳轉(zhuǎn)到登陸頁面或者彈出登錄dialog。 ??? session超時彈出登錄dialog注意事項: ??? ??? 用一個帶屏蔽層的dialog覆蓋的整個瀏覽器.這時瀏覽器窗口內(nèi)容不能變,只是上面加了一個登錄框和一個背景層。 ??? ??? 當(dāng)用戶輸入username and password登錄成功后,去掉登錄框和背景層.這時用戶可以繼續(xù)操作. ??? ??? 登錄失敗alert出錯信息,瀏覽器窗口內(nèi)容還是不變. ??? 參考dwz.core.js代碼片段
??
loadUrl: function(url,data,callback){ var $this= $(this); $.ajax({ type: 'POST', url: url, cache: false, data: data, success: function(response){ var json = DWZ.jsonEval(response); if (json.statusCode==DWZ.statusCode.timeout){ alertMsg.error(DWZ.msg("sessionTimout"), {okCall:function(){ DWZ.loadLogin(); }}); } if (json.statusCode==DWZ.statusCode.error){ if (json.message) alertMsg.error(json.message); } else { $this.html(response).initUI(); if ($.isFunction(callback)) callback(response); } }, error: DWZ.ajaxError }); }ajax post 表單數(shù)據(jù)處理: ??? ??? 當(dāng)客戶端ajax提交表單超原理同ajax load ??? 參考dwz.core.js代碼片段
ajaxDone:function (json){ if(json.statusCode == DWZ.statusCode.error) { if(json.message && alertMsg) alertMsg.error(json.message); } elseif (json.statusCode == DWZ.statusCode.timeout) { if(json.message && alertMsg) alertMsg.error(json.message, {okCall:DWZ.loadLogin}); else DWZ.loadLogin(); } else { if(json.message && alertMsg) alertMsg.correct(json.message); }; }-------------------------------------------------------------------
注意事項: ??? ajax請求session超時服務(wù)器端返回一個json就可以了,其他的就交給dwz js框架來處理,服務(wù)器端只要做到ajax請求session超時返回如下json就可以了:
轉(zhuǎn)載于:https://www.cnblogs.com/j-ui/p/3217290.html
總結(jié)
以上是生活随笔為你收集整理的Ajax请求session超时处理流程(DWZ)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tomcat使用说明
- 下一篇: Android之Service与Inte