ajax请求判定:
请求头中有 x-requested-with :XMLHttpRequest
if( request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equals("XMLHttpRequest") )
{
//设定头文件中ajax请求超时标志
response.setHeader("sessionstatus", "timeout");
out.println( "requested-with: " + request.getHeader("x-requested-with") );
}
这样,如果session超时,而且是ajax请求,就会在响应头里,sessionstatus有一个timeout;
再用一个全局的方法来处理,session超时要跳转的页面。
//全局的ajax访问,处理ajax清求时sesion超时
$.ajaxSetup({
contentType : "application/x-www-form-urlencoded;charset=utf-8",
complete : function(XMLHttpRequest, textStatus) {
var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus"); // 通过XMLHttpRequest取得响应头,sessionstatus,
// alert(1);
if (sessionstatus == "timeout") {
// 如果超时就处理 ,指定要跳转的页面
//window.location.replace("/test/index.jsp");
alert("time out:");
window.location.replace("login.jsp");
}
}
});
ref
http://www.jb51.net/article/43770.htm
http://jingyan.baidu.com/article/90895e0f9ecb7264ec6b0b2e.html
http://my.oschina.net/u/568577/blog/295525