2010-03-17 41 views
13

是否有可能,發送一個HTTP消息之前,使用JavaScript /的XmlHttpRequest刪除一些特定的HTTP標頭?如何刪除HTTP特定的頭文件在Javascript

我使用的是專用的瀏覽器,所以沒有辦法用瀏覽器特定的解決方案來做到這一點。

例如,我想刪除頁眉 '授權' 之前,發送消息

POST /social/rpc?oauth_version=1.0& ... HTTP/1.1 

Accept: text/html, image/png, image/*, */* 
Accept-Language: ko 
Authorization: Basic Og== 
Host: test.myhost.com 

問候

回答

14

假設您的瀏覽器支持它,您可以使用XmlHttpRequest對象的setRequestHeader方法,它是W3C spec的一部分。 It is also implemented by IE

var req = new XMLHttpRequest(); 
req.setRequestHeader("Authorization", ""); 
+0

我只是想出現在,這是沒有我存在的必要。我認爲這是造成問題,但不是。不管怎麼說,還是要謝謝你。 – Andres 2010-03-18 13:44:02

+10

根據規範,這不應該刪除標題。它只會追加值。所以即使你傳遞null或「」它也不會改變原來的值。 – Marco 2011-08-12 23:02:17

+0

其實它的確如此。 – madhairsilence 2014-10-07 11:00:32

4

從未做過,但在理論上,你可以嘗試:

xhr.setRequestHeader('Authorization', null); 

在某些實現中還有一個未指定的removeRequestHeader()函數,您可能也想嘗試一下。

3

當我使用jQuery的文件上傳,和華納刪除它在options方法,設置爲null''不是爲我工作,我用:

req.setRequestHeader("Authorization");

這對我的作品。

+0

如何使用'setRequestHeader'爲您刪除'Authorization'標題?我不明白。無論如何,「req」是什麼? – vsync 2016-11-05 21:14:27

+0

@vsync XMLHttpRequest(xhr) – Fancyoung 2016-11-07 01:21:25

0

亞當的回答並沒有爲我工作。但是,下面做了:

xhr.setRequestHeader('Authorization', ' '); 

注意,第二個參數是一個包含空格而不是空格的字符串。 它不會完全刪除頭,但其設置爲空字符串,這可能是不夠的情況。