Skip to Content
博客如何使用Chrome插件中进行自定义请求头修改?

如何使用Chrome插件中进行自定义请求头修改?

当前的「chrome extension」是基于 mv3 版本构建的,所以采用的方案与mv2版本不相同。

📝 如何实现

👉 进行拦截

const RULE_ID = 10000; ... chrome.declarativeNetRequest.updateDynamicRules({ removeRuleIds: [ RULE_ID ], addRules: [ { id: RULE_ID, priority: 1, action: { type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS, requestHeaders: [ { header: "CUSTOM-HEADER", operation: chrome.declarativeNetRequest.HeaderOperation.SET, value: "CUSTOME-VALUE" } ] }, condition: { requestDomains: urls, resourceTypes: [ // 把所有的功能都罗列出来 chrome.declarativeNetRequest.ResourceType.MAIN_FRAME, chrome.declarativeNetRequest.ResourceType.SUB_FRAME, chrome.declarativeNetRequest.ResourceType.STYLESHEET, chrome.declarativeNetRequest.ResourceType.SCRIPT, chrome.declarativeNetRequest.ResourceType.IMAGE, chrome.declarativeNetRequest.ResourceType.FONT, chrome.declarativeNetRequest.ResourceType.OBJECT, chrome.declarativeNetRequest.ResourceType.XMLHTTPREQUEST, chrome.declarativeNetRequest.ResourceType.PING, chrome.declarativeNetRequest.ResourceType.CSP_REPORT, chrome.declarativeNetRequest.ResourceType.MEDIA, chrome.declarativeNetRequest.ResourceType.WEBSOCKET, chrome.declarativeNetRequest.ResourceType.OTHER ] } } ] }) ...

👉 取消拦截

chrome.declarativeNetRequest.updateDynamicRules({ removeRuleIds: [ RULE_ID ], addRules: [] })

🤗 发现问题

以上问题在补充对应字段即可。

📎 参考文章

chrome.declarativeNetRequest - Chrome for Developers