引子
最近由于工作需要,在拦截器里对ajax请求做一些不同的处理,在这里把自己的的处理方式分享出来。比较简单,看看代码就会明白了。
ajax代码
$(document).ready(function(){
$(".new_bt").click(function(){
data = ...;
$.ajax({
type: "POST",
url: "../index/saveYue.do",
data:data,
dataType: "json",
success:function(data){
//成功的处理
}
error:function(data){
if(data.responseText=='loseSession'){
//session失效时的处理
}
}
});
});
拦截器代码
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object obj){
//一系列处理后发现session已经失效
if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ //如果是ajax请求响应头会有x-requested-with
PrintWriter out = resp.getWriter();
out.print("loseSession");//session失效
out.flush();
return false;
}else{
//非ajax请求时,session失效的处理
}
return true;
}