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