1. 程式人生 > >.ajaxComplete()的使用以及詳解

.ajaxComplete()的使用以及詳解

.ajaxComplete()的使用以及詳解

先上一段程式碼:

$(document).ajaxComplete(function(event,request, settings){
      var EwdFlag =request.getResponseHeader("EwdFlag")
      if(EwdFlag=="noSession"){
            window.top.location.href = "../index.jsp";  
      } 
      if(EwdFlag=='noRoute'){
          var noRouteUrl=request.getResponseHeader("noRouteUrl"
); console.log(noRouteUrl+"路徑不存在") window.location="../error/noRoute.jsp?url="+ noRouteUrl; } if(EwdFlag=='noPower'){ var noPowerUrl=request.getResponseHeader("noPowerUrl"); console.log(noPowerUrl+"沒有許可權"); window.location="../error/noRoute.jsp?url="
+ noPowerUrl; } });

解析:上面這段程式碼位於common.js,每一個頁面都會引入,而 (document).ajaxCompleteajax (document).ajaxComplete這個事件,不管是否請求成功,都會執行$(document).ajaxComplete裡面的方法。

當然 ajax還有其他常用並且與之類似的函式
這裡寫圖片描述

三個引數的作用
function(event,request, settings)

event - 包含 event 物件
xhr - 包含 XMLHttpRequest 物件
options - 包含 AJAX 請求中使用的選項

鄙人使用的方式在攔截器中判斷該使用者是否用該許可權,如果沒有則

((HttpServletResponse) resp).setHeader("EwdFlag", "noRoute");

然後再ajax執行完以後執行

 if(EwdFlag=='noRoute'){
          var noRouteUrl=request.getResponseHeader("noRouteUrl");
          console.log(noRouteUrl+"路徑不存在")
          window.location="../error/noRoute.jsp?url="+ noRouteUrl;
      }

然後就會跳轉到沒有許可權提示的頁面,同理。驗證當前session是否過期也是用此方法,但是此方法僅僅適用於ajax請求以後,執行

還有一點:
$(document).ajaxComplete是所有的ajax執行完畢以後都會執行此方法