2011-09-27 64 views
24

試圖從XHR對象獲取請求頭文件,但沒有運氣,是否存在該對象的隱藏方法或屬性,它會公開瀏覽器發送的頭文件?在XMLHttpRequest中獲取SENT頭文件

我已經知道如何設置自定義請求標題並查看響應標題,我正在尋找所有發送的REQUEST標題列表,由瀏覽器和我的自定義標題創建。

我使用的是webkit/chrome,不關心其他瀏覽器。

編輯:我不是在監視請求,我正在構建一個web應用程序,我需要列出這些標題並在應用程序中顯示它們,請不要告訴我關於小提琴手,螢火蟲和鍍鉻工具,那不是我正在尋找的。

+0

可以顯示你所使用的代碼? – AmGates

+1

我可以這樣做,但任何XHR請求都沒有什麼區別,可以像訪問xhr.getAllResponseHeaders()一樣訪問請求標頭() –

+2

看起來你不能....至少根據W3C規範。一種選擇可能是讓你的服務器返回所有的請求頭。另一種選擇是使用chrome工具查看DOM,也許chrome具有可讀屬性,您可以通過腳本調用它。 – trydyingtolive

回答

20

XMLHttpRequest API沒有辦法讓發送請求標頭。有些方法只能獲取響應標題,而則設置請求標題。

您必須讓服務器回顯標題,或者使用像Wireshark這樣的數據包嗅探器。

2

嘗試使用Fiddler Web Debugger。

http://www.fiddler2.com/fiddler2/

您可以捕捉在任何瀏覽器發送以及檢查請求頭,響應頭,甚至複製捕獲發送請求和發送它作爲自己的請求。

+3

我需要在javascript中自己訪問標題,我不想在外部監視請求。 –

-1

假設您使用的是jQuery,並且您正在查找附加的任何內容,但可能未發送所有標頭,這可能會有所幫助。不知道這是否符合您的需求,(因爲瀏覽器往往會增加自己的東西),但如果你需要先抓住你自己的頭,這個工程:

$.ajaxSetup({ 
    beforeSend: function (jqXHR, settings) { 
     if(!(settings.headers && settings.headers.token)) { 
      //no token header was set, so set the request header 
      jqXHR.setRequestHeader('token', newtoken); 
     } 
    } 
})