2013-03-13 66 views
7

我有一個全球性的ajaxComplete處理程序:ajaxComplete,XMLHttpRequest的是未定義

$('body').ajaxComplete(function (event, request, settings) {   
     if (request.getResponseHeader('REQUIRES_AUTH') === '1') { 
      alert("unauthorized");     
     }; 
    }); 

的問題,即request總是不確定的,只是event填補。
你能解釋我爲什麼嗎?

例AJAX請求的:

$.ajax({ 
     cache: false, 
     data: "GET", 
     url: url, 
     success: function (content) {   
      $('#modal').html(content); 
      $('#modal').modal();   
     } 
    }); 

UPDATE: 從API文檔(感謝奧斯汀穆林斯):
在jQuery 1.8的,然而,.ajaxComplete()方法只應附加到文件。

我有我的代碼改成這樣:

$(document).ajaxComplete(function (event, request, settings) {    
     if (request.getResponseHeader('REQUIRES_AUTH') === '1') { 
      alert("unauthorized");    
     }; 
    }); 

但現在我得到的錯誤:

TypeError: document.createDocumentFragment is not a function  
safeFrag = document.createDocumentFragment(); (jquery-1.9.0.js (line 5800)) 

瀏覽器是火狐19.0.2

SOLUTION: 的問題出現在Jquery 1.9.0版本中。我已更新到1.9.1,錯誤消失了。感謝波阿斯。

+0

從[API文檔](http://api.jquery.com/ajaxComplete/):注意:但是,從jQuery 1.8開始,只應將.ajaxComplete()方法附加到文檔中。 – 2013-03-13 04:35:04

+0

@AustinMullins:我改變了文檔,但現在我得到錯誤'TypeError:document.createDocumentFragment不是一個函數' – user348173 2013-03-13 04:41:52

+0

你是如何改變它的?它應該是'$(document).ajaxComplete()'。 – 2013-03-13 04:50:31

回答