declarativeNetRequest.ModifyHeaderInfo
对于请求,要修改的请求或响应标头,在rule.action.requestHeaders
数组或rule.action.responseHeaders
数组中声明,这些规则的rule.action
.type
为 "modifyHeaders"。
每个对象都描述了一个标头修改。要修改多个标头,可以在这些数组中指定多个对象,或者跨多个规则指定。
匹配的modifyHeaders
规则按匹配优先级中描述的顺序应用。在每个扩展中,所有modifyHeaders
规则的优先级都低于或等于匹配的allow
或allowAllRequests
规则,这些规则将被忽略。
如果多个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 表格仅在浏览器中加载
webextensions.api.declarativeNetRequest.RuleAction.responseHeaders
BCD 表格仅在浏览器中加载