此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

declarativeNetRequest.ModifyHeaderInfo

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

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

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

如果多个 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

webextensions.api.declarativeNetRequest.RuleAction.responseHeaders