首頁 > web前端 > js教程 > 主體

解決攔截器對ajax請求的攔截實例詳解

高洛峰
發布: 2017-03-28 14:39:08
原創
3750 人瀏覽過

解決攔截器對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;
         }
       }
     }
登入後複製

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

更多解決攔截器對ajax請求的攔截實例詳解相關文章請關注PHP中文網!

相關文章:

透過JS 攔截全域ajax請求實例解析

Node.js伺服器環境下使用Mock.js攔截AJAX請求的教學

php請求

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板