2010-09-17 35 views
4

我正在通過jQuery的$ .ajax()方法發出一個AJAX請求。jQuery AJAX成功回調:我能看到發送的頭文件嗎?

我指定使用成功時回調:

$.ajax({ 
    ... 
    success: function(data, textStatus, xhr) { 
     ... 
    } 
}); 

是否有可能在回調被送到什麼請求頭看?例如,要檢索特定的請求標題值?

編輯:要求是,我不「擁有」調用AJAX請求的代碼,只有回調。我需要檢查回調是否傳遞了特定的頭文件。

例如

在他們的代碼是:

$.ajax({ 
    beforeSend: function(xhr) { 
      xhr.setRequestHeader('A','B'); 
    }, 
    success: rogersCallbackMethod 
}); 

然後在我的代碼,我想說的是這樣的:

function rogersCallbackMethod(data, textStatus, xhr) { 
    if (xhr.getRequestHeader('A') == 'B') { 
      ... 
    } 
} 

回答

0

檢查小提琴手。它適用於IE和Firefox。

1

那麼,認爲這是一個有效的問題,並嘗試自己解決問題時遇到此問題。

您可以使用this上下文。我正在使用url屬性,但還有其他幾個。

下面是一個解決我的問題的例子。 (請注意,我有過AJAX調用代碼控制,而不是服務器端代碼,這哪裏是「bIDold」應被退回。)

$.post(url, obj, function(data) { 
    var bIDold = this.url.match(/bID=(\d*)/)[1]; 
    var bIDnew = data.bID; 

    if (bIDold != bIDnew) { ... } 
}); 

此致會是這樣的:

if (this.url.match(/A=([^&]*)/)[1] == 'B') { ...