declarativeNetRequest.ModifyHeaderInfo
要修改的请求的请求标头或响应标头,在 rule.action.requestHeaders
数组或 rule.action.responseHeaders
数组中声明,用于 rule.action
.type
为"modifyHeaders"这个规则。
每个对象描述了一个标头修改。要修改多个标头,可以在这些数组中指定多个对象,或者跨多个规则。
匹配的 modifyHeaders
规则将按照匹配优先级中描述的顺序去应用。在每个扩展中,所有优先级低于或等于匹配的 allow
或 allowAllRequests
规则的 modifyHeaders
规则都会被忽略。
如果多个 modifyHeaders
规则指定了相同的标头,则标头的最终修改结果将根据每个规则的优先级和指定的操作确定:
- 如果一个规则为标头附加条目,则较低优先级的规则只能对标头附加条目。不允许进行
set
和remove
操作。 - 如果一个规则设置了一个标头,那么低优先级规则除了来自相同扩展的
append
规则外,不能修改该标头。 - 如果一个规则已经删除了一个标头,那么低优先级规则不能修改该标头。
类型
标头限制
在 Chrome 中,对以下请求标头支持 "append"
:
Accept
Accept-Encoding
Accept-Language
Access-Control-Request-Headers
Cache-Control
Connection
Content-Language
Cookie
Forwarded
If-Match
If-None-Match
Keep-Alive
Range
Te
Trailer
Transfer-Encoding
Upgrade
Via
Want-Digest
X-Forwarded-For
在 Firefox 中,扩展需要具有主机权限才能对 Host
标头设置新值。
浏览器兼容性
webextensions.api.declarativeNetRequest.RuleAction.requestHeaders
BCD tables only load in the browser
webextensions.api.declarativeNetRequest.RuleAction.responseHeaders
BCD tables only load in the browser