项目使用HTML页面,所以多数请求都是使用的ajax,拦截器主要是验证用户的token,一旦token失效就跳转到登录页面,但是发现中间的ajax请求不能完成想要的跳转,于是借助度娘,现将实现的方法总结如下,已被后用。
一,后台处理
在拦截器的设置上,在原有的token失效后的处理逻辑中增加如下的判断:
if(req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
PrintWriter out = res.getWriter();
out.print("loseToken");//session失效
out.flush();
return false;
}
//注:如果是ajax请求,则请求头部会有“x-requested-with”
二,前端处理
在ajax的error处理逻辑中增加如下:
error : function(result){
if(result.responseText == 'loseToken'){
//跳转到登录页面
}
}
实现了 Interceptor 对ajax的处理。