背景
ajax请求时,如果session失效,此时不能在后台直接指定浏览器进行重定向,这时候需要在服务器端和前端同时进行处理。
服务器端
识别一个ajax请求
在发送ajax请求时,会产生如下的信息
String header = request.getHeader("x-requested-with");
当发现ajax请求时,如果Session失效,则返回错误代码,response..getWriter().write("{"code":"XXX"}")
浏览器端处理
在document进行全局ajax监听(依赖jquery),服务器端返回的代码为{code:XXX}
$(document).ajaxComplete(function(e,xhr,opt){
var codeObj=$.parseJSON(xhr.responseText);
var code = codeObj.code;
if(code == XXX){//ajaxSession过期
//处理逻辑
}
});