2009-02-24 86 views
39

在HTML頁面上,單擊圖像(「img」)或錨(「a」)標籤的鏈接時,我想爲GET請求添加自定義標頭。這些鏈接通常用於下載動態內容。這些標題可以是SAML標題或自定義應用程序特定標題。使用JavaScript添加自定義HTTP標頭

是否可以通過JavaScript添加這些自定義標題?或者,如果我通過XMLHttpRequest添加這些,我該如何實現下載功能?

此要求僅適用於IE6或7。

+2

我想這樣做,例如,如果你想從GET請求中需要身份驗證頭的服務中獲取圖像。 – 2013-02-14 15:54:57

回答

40

如果您使用的是XHR,那麼setRequestHeader應該可以工作,例如,

xhr.setRequestHeader('custom-header', 'value'); 

P.S.您應該使用Hijax來修改錨點的行爲,以便在出於某種原因AJAX不適用於您的客戶端(例如頁面上其他地方的破壞腳本)時使用。

12

我認爲最簡單的方法是使用查詢字符串而不是HTTP頭。

+1

+1。即使使用XMLHttpRequest,設置標題也不完全可靠。去參數。 – bobince 2009-02-24 14:23:29

12

向瀏覽器內部的請求添加標頭的唯一方法是使用XmlHttpRequest setRequestHeader方法。

將此與「GET」請求一起使用將下載資源。接下來的技巧是以預期的方式訪問資源。表面上你應該可以讓GET響應在短時間內緩存,因此導航到一個新的URL或創建一個帶有src url的IMG標籤應該使用來自前一個「GET」的緩存響應。但是,這很可能會失敗,特別是在IE中,對於緩存而言,它本身可能是一個法律本身。

最終我同意Mehrdad,使用查詢字符串是最簡單也是最可靠的方法。

另一個奇怪的選擇是使用XHR向URL發出請求,表明您有意訪問資源。它可以用會話cookie進行響應,該會話cookie將由隨後的圖像或鏈接請求攜帶。

0

如前所述,最簡單的方法是使用查詢字符串。

但是,如果你不能,由於安全原因,你應該考慮使用cookie。