我正在使用jQuery.ajax
進行HTTP連接。在我的項目中,我想設置自定義的http頭,但我只想發送我設置的頭。目前我的頭文件正在發送,但另外還有一些我沒有設置的頭文件。
這是我如何添加自定義標題:
$.ajax("http://fakedomain.foo", {headers: {header1: "value1", header2: "value2"}});
我可能被罰款甚至在情況下,它無法設置頭的整個集合,但只添加額外的。但即使在這種情況下,
有時我的標頭在發送前被修改。舉例來說,如果我添加這些頭
:
{
"Connection": "close",
"Accept-Encoding": "deflate, gzip",
"Accept": "text/plain",
}
然後,這是實際上正在發送的內容(我做了Wireshark的捕獲只是爲了確認這一點)
{
"Connection": "close",
"Accept-Encoding": "gzip,deflate,sdch",
"Accept": "text/plain, */*; q=0.01",
"Accept-Language": "es-ES,es;q=0.8",
"Dnt": "1",
"Accept-Charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
...
}
,你可以看到一些邪惡的gobling在調整我的標題,並且已經將「sdch」編碼添加到「Accept-Encoding」標題,並且還改變了「Accept」標題,以便它也接受
*/*
。如果WS很挑剔,並且需要根據標題採取不同的操作,那麼這是一個真正的問題。
所以總結起來:
有沒有辦法只發送我的頭,並沒有多餘的嗎?
2.如果不是,有沒有辦法將我的自定義標題添加爲原樣,而不會被修改?
UPDATE:
我的壞,我沒有正確設置標頭。 (我發佈的代碼是正確的,但是在我的單元測試中存在一個錯誤,所以我的頭文件並沒有實際添加,而是發送了默認文件。修復後,我可以看到我的頭文件正在發送正確的文本,並沒有修改。 所以,不要擔心#2,問題#1仍然適用。
1)否2)否。發送的標題依賴於broswer,雖然它們都會以某種方式修改它們。 –