1.首先要再SessionFilter中进行ajax请求过滤,代码如下:
if (session == null) //session不存在
{
String ajaxSubmit = servletRequest.getHeader("X-Requested-With");
if(ajaxSubmit != null && ajaxSubmit.equals("XMLHttpRequest")){
PrintWriter printWriter = servletResponse.getWriter();
printWriter.print("timeout");
printWriter.flush();
printWriter.close();
}else{
//跳转回首页
servletResponse.sendRedirect("开始页面");
}
}
2.前端进行拦截处理
function getTopWinow() {
var p = window;
while (p != p.parent) {
p = p.parent;
}
return p;
}
$.ajaxSetup({
type : 'POST',
dataFilter : function(data, type) {
//alert("debug");
if (data == "timeout" || data == "[object XMLDocument]") {// ajax请求,发现session过期,重新刷新页面,跳转到登录页面
var top = getTopWinow();
top.location.href = '开始页面';
} else {
return data;
}
}