引子
最近由於工作需要,在攔截器裏對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;
}