解決攔截器對ajax請求的攔截實例詳解
更新時間:2016年12月21日 17:29:42 投稿:lqh
這篇文章主要介紹了解決攔截器對ajax請求的攔截實例詳解的相關資料,需要的朋友可以參考下
解決攔截器對ajax請求的的攔截
攔截器配置:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {
//獲取判定登陸的session是否存在
String token = (String) request.getSession().getAttribute("token");
String postId = (String) request.getSession().getAttribute("postId");
if(token == null || token == ""){
String XRequested =request.getHeader("X-Requested-With");
if("XMLHttpRequest".equals(XRequested)){
response.getWriter().write("IsAjax");
}else{
response.sendRedirect("/m-web/user/toLogin");
}
return false;
}
if(postId == null || postId == ""){
String XRequested =request.getHeader("X-Requested-With");
if("XMLHttpRequest".equals(XRequested)){
response.getWriter().write("IsAjax");
}else{
response.sendRedirect("/m-web/user/toLogin");
}
return false;
}
return true;
}
1、判斷 String XRequested =request.getHeader("X-Requested-With") 的值,目的是判斷是否是ajax請求。
2、response.getWriter().write("IsAjax");寫出一個響應的數據給ajax,這樣就可以在ajax里面做判斷
判斷的方式存在兩種方式:
1)直接在ajax里面做判斷(不建議)
success:function(data){
if(data == "IsAjax"){
window.location.href="m-web/user/toLogin"
return;
}
}
2)改ajax源碼然后在做壓縮,是針對全局的方式來修改的(建議)
if ( isSuccess ) {// if no content
if ( status === 204 || s.type === "HEAD" ) {
statusText = "nocontent";
// if not modified
} else if ( status === 304 ) {
statusText = "notmodified";
// If we have data, let's convert it
} else {
statusText = response.state;
success = response.data;
error = response.error;
isSuccess = !error;
//解決ajax攔截問題
var result = responses.text;
if(result.indexOf("IsAjax")>=0){
window.location.href="m-web/user/toLogin";
return;
}
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
轉自Jquery官方 jQuery1.1.3發(fā)布,速度提升800%,體積保持20K
轉自Jquery官方 jQuery1.1.3發(fā)布,速度提升800%,體積保持20K...2007-08-08
Jquery promise實現(xiàn)一張一張加載圖片
通過jquery promise實現(xiàn)一張一張的連續(xù)圖片的加載功能,當圖片加載錯誤,超時后會顯示加載圖片加載失敗。對jquery promise實現(xiàn)加載圖片的相關資料感興趣的朋友參考下2015-11-11

