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.

備註: 此功能可在 Web Worker(不包括 Service Worker)中使用。

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

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

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

出於安全原因,有幾個由使用者代理管控的禁止的請求標頭。任何嘗試從前端 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
# the-setrequestheader()-method

瀏覽器相容性

BCD tables only load in the browser

參見