ajax session超时处理
1.问题: 客户端发出了一个ajax请求,但是此时session超时了
2.解决方法:
服务端: 在过滤器或者拦截器中,判断ajax请求类型,设置一个超时标志
客户端:ajax请求要求有一个全局处理函数 ,获取相应标志,做出相应处理
- 过滤器中加入:
// 如果是ajax请求响应头会有,x-requested-with;
if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").
equalsIgnoreCase("XMLHttpRequest"))
{
res.setStatus(911);//表示session timeout
return;
}
前台全局处理ajax:
$.ajaxSetup({ timeout:4000, cache:false, complete : function(xhr, textStatus) { //session timeout if (xhr.status == 911) { window.location.href = "../login.jsp"//返回应用首页 return; } } });