declarativeNetRequest动态规则仅生效于文档请求问题排查
问题根源及解决办法
你设置的规则只对doc类型请求生效,核心原因是规则的condition.resourceTypes仅指定了main_frame和sub_frame——这两个资源类型仅对应文档类请求,API请求(比如fetch、XMLHttpRequest)、脚本、图片这类其他类型的请求根本不会匹配这条规则。
调整方案
- 若想让规则覆盖所有请求类型,直接把
resourceTypes改成["all"]即可;要是只想覆盖特定类型,就把需要的类型明确列出来,比如API请求对应xmlhttprequest和fetch,完整可选的资源类型包括:main_frame、sub_frame、xmlhttprequest、fetch、script、style、image、font、media、websocket、other。
修正后的完整规则示例
{ "addRules": [ { "id": 67487208, "priority": 1, "action": { "type": "modifyHeaders", "requestHeaders": [ { "header": "n", "operation": "set", "value": "true" } ] }, "condition": { "urlFilter": "|https*", "resourceTypes": ["all"] } } ], "removeRuleIds": [ 67487208 ] }
你的Manifest配置没问题,declarativeNetRequest权限和<all_urls>主机权限都已正确配置,无需修改。
内容的提问来源于stack exchange,提问作者markadm
相关产品推荐
相关产品推荐

