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.
XMLHttpRequest
的 setRequestHeader()
方法用來設定 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
。
語法
setRequestHeader(header, value)
參數
傳回值
無(undefined
)。
規範
Specification |
---|
XMLHttpRequest Standard # the-setrequestheader()-method |
瀏覽器相容性
BCD tables only load in the browser