XMLHttpRequest: setRequestHeader() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用,但 Service Workers 除外。

XMLHttpRequestsetRequestHeader() 方法用于设置 HTTP 请求头的值。使用 setRequestHeader() 时,你必须在调用 open() 之后、调用 send() 之前调用它。如果使用相同的请求头多次调用 setRequestHeader(),则这些值将被合并成一个单独的请求头。

每次在第一次调用 setRequestHeader() 之后再次调用它,指定文本都会被追加到现有请求头内容的末尾。

如果尚未通过此方法设置 Accept 请求头,则在调用 send() 时,请求将附带一个类型为 "*/*"Accept 请求头。

出于安全原因,存在一些由用户代理控制值的禁止的请求头。任何尝试从前端 JavaScript 代码为这些请求头之一设置值的操作都将被忽略,不会发出警告或错误。

此外,可以在请求中添加 Authorization HTTP 请求头,但如果请求被重定向到其他源,该请求头将被移除。

注意: 当你跨域发送请求时,对于自定义字段,你可能会遇到“在预检响应中被 Access-Control-Allow-Headers 禁止”的异常。在这种情况下,你需要在服务器端的响应头中设置 Access-Control-Allow-Headers

语法

js
setRequestHeader(header, value)

参数

要设置其值的请求头的名称。

value

要作为请求头正文设置的值。

返回值

无(undefined)。

规范

规范
XMLHttpRequest
# the-setrequestheader()-method

浏览器兼容性

另见