declarativeNetRequest.ModifyHeaderInfo

对于请求,要修改的请求或响应标头,在rule.action.requestHeaders数组或rule.action.responseHeaders数组中声明,这些规则的rule.action.type为 "modifyHeaders"。

每个对象都描述了一个标头修改。要修改多个标头,可以在这些数组中指定多个对象,或者跨多个规则指定。

匹配的modifyHeaders规则按匹配优先级中描述的顺序应用。在每个扩展中,所有modifyHeaders规则的优先级都低于或等于匹配的allowallowAllRequests规则,这些规则将被忽略。

如果多个modifyHeaders规则指定相同的标头,则根据每个规则的优先级和指定的运算来确定标头的最终修改。

  • 如果规则已附加到标头,则较低优先级的规则只能附加到该标头。setremove操作不允许。
  • 如果规则已设置标头,则较低优先级的规则无法修改标头,除非来自同一个扩展的append规则。
  • 如果规则已删除标头,则较低优先级的规则无法修改标头。

类型

此类型的值是对象。它们包含以下属性

一个string。要修改的标头的名称。

operation

一个string。要对标头执行的操作。可能的值有"append""set""remove"

value 可选

一个string。标头的新的值。必须为 append 和 set 操作指定。对于 "remove" 操作不允许。

标头限制

在 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 表格仅在浏览器中加载