背景
ajax請求時(shí),如果session失效挑势,此時(shí)不能在后臺(tái)直接指定瀏覽器進(jìn)行重定向镇防,這時(shí)候需要在服務(wù)器端和前端同時(shí)進(jìn)行處理。
服務(wù)器端
識(shí)別一個(gè)ajax請求
在發(fā)送ajax請求時(shí)潮饱,會(huì)產(chǎn)生如下的信息
ajax請求頭.png
String header = request.getHeader("x-requested-with");
當(dāng)發(fā)現(xiàn)ajax請求時(shí)营罢,如果Session失效,則返回錯(cuò)誤代碼,response..getWriter().write("{"code":"XXX"}")
瀏覽器端處理
在document進(jìn)行全局ajax監(jiān)聽(依賴jquery)饲漾,服務(wù)器端返回的代碼為{code:XXX}
$(document).ajaxComplete(function(e,xhr,opt){
var codeObj=$.parseJSON(xhr.responseText);
var code = codeObj.code;
if(code == XXX){//ajaxSession過期
//處理邏輯
}
});