2016-08-20 98 views
-1

是否可以發送ajax請求,並攔截或查看HTML響應代碼,然後對其執行操作?我有一個使用純JS和XMLHttpRequest來看到像aborterror,並timeout事物的系統,但它會更有效追蹤404和409S等攔截所有ajax結果並獲得響應代碼

這是我當前的代碼這是本相當流行方法

(function(open) { 
      XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
       this.addEventListener("abort", function() { 
        self.trigger('abort'); 
       }, false); 
       this.addEventListener("error", function() { 
        self.trigger('error'); 
       }, false); 
       this.addEventListener("timeout", function() { 
        self.trigger('timeout'); 
       }, false); 
       this.addEventListener("load", function() { 
        self.trigger('load'); 
       }, false); 
       open.call(this, method, url, async, user, pass); 
      }; 
     })(XMLHttpRequest.prototype.open); 

但我正在打開HTTP響應代碼。我也被綁定到jQuery,所以我可以使用任何jQuery設置選項提供,但到目前爲止,我還沒有看到獲得響應代碼的方式。

請注意我在尋找一個全球性的解決方案。我不能在每個ajax請求中添加100個單獨的函數調用。

+1

中找到[此](http://stackoverflow.com/questions/5202296/add-a-hook-to-all-ajax-requests-on-一頁)應該幫助 – BenG

+0

爲什麼你不能得到HTML響應代碼? – Hydro

+0

沒有意識到它很容易在'this.status'中找到 –

回答

-1

狀態特性可以很容易地在this

(function(open) { 
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) { 
    switch(this.status){ 
     // case 404: etc 
    } 
      open.call(this, method, url, async, user, pass); 
     }; 
    })(XMLHttpRequest.prototype.open);