XMLHttpRequest:setRequestHeader() 方法

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

XMLHttpRequestsetRequestHeader() 方法用來設定 HTTP 的請求標頭。當使用 setRequestHeader() 的時候,必須在 open() 之後呼叫,同時也必須在 send() 之前呼叫。如果這個方法被呼叫了許多次,且設定的標頭是一樣的,那所有設定的值會被合併成一個單一的請求標頭。

在第一次呼叫 setRequestHeader() 之後的每一次的呼叫,都會把給定的文字附加在已存在的標頭內容之後。

如果沒有使用此設定 Accept 標頭,則在呼叫 send() 時,將隨請求傳送類型為「*/*」 的 Accept 標頭。

出於安全原因,有幾個由使用者代理(User Agent)管控的禁止修改的標頭。任何嘗試從前端 JavaScript 程式碼中設置這些標頭的值之行為都會被忽略,且不會發出警告或錯誤。

此外,可以在請求中添加 Authorization HTTP 標頭,但如果請求被跨域重定向,這個標頭將會被移除。

备注: 對於你的自訂字段,跨域發送請求時可能會遇到「not allowed by Access-Control-Allow-Headers in preflight response」的例外狀況。在這種情況下,你需要在伺服器端的回應標頭中設定 Access-Control-Allow-Headers

語法

js
setRequestHeader(header, value)

參數

想要設定所屬值的標頭名稱。

value

用來設定標頭本身的值。

傳回值

無(undefined)。

規範

Specification
XMLHttpRequest Standard
# the-setrequestheader()-method

瀏覽器相容性

BCD tables only load in the browser

參見