springmvc 攔截器區分ajax請求
阿新 • • 發佈:2019-02-16
引子
最近由於工作需要,在攔截器裡對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;
}