PS:我是author of 请求地 https://requestly.io?- 用于修改 HTTP 请求和响应的 Chrome/Firefox 扩展。
当OP提出问题时这当然是不可能的,但现在你可以使用网络请求API https://developer.chrome.com/extensions/webRequest使用 Manifest V2 和 DeclarativeNetRequest API 使用 Manifest V3 编写自己的扩展来修改请求和响应标头。
清单 V2 代码
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return { requestHeaders: details.requestHeaders };
},
{urls: ['<all_urls>']},
['blocking', 'requestHeaders' /* , 'extraHeaders' */]
// uncomment 'extraHeaders' above in case of special headers since Chrome 72
// see https://developer.chrome.com/extensions/webRequest#life_cycle_footnote
);
Google Chrome 在 Manifest V3 中弃用了 webRequest 阻止 API。根据官方声明 https://developer.chrome.com/blog/more-mv2-transition/Google 于 2022 年 9 月 28 日发布消息称,从 2023 年 6 月起,所有使用 Manifest v2 的扩展程序将无法在 Chrome 上运行。这是使用 Manifest v3 修改请求和响应标头的方法 -https://github.com/requestly/modify-headers-manifest-v3 https://github.com/requestly/modify-headers-manifest-v3
清单 V3 代码:
rules.ts
const allResourceTypes =
Object.values(chrome.declarativeNetRequest.ResourceType);
export default [
{
id: 1,
priority: 1,
action: {
type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS,
requestHeaders: [
{
operation: chrome.declarativeNetRequest.HeaderOperation.SET,
header: 'x-test-request-header',
value: 'test-value',
},
]
},
condition: {
urlFilter: '/returnHeaders',
resourceTypes: allResourceTypes,
}
},
{
id: 2,
priority: 1,
action: {
type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS,
responseHeaders: [
{
operation: chrome.declarativeNetRequest.HeaderOperation.SET,
header: 'x-test-response-header',
value: 'test-value',
},
]
},
condition: {
urlFilter: 'https://testheaders.com/exampleAPI',
resourceTypes: allResourceTypes,
}
},
];
背景.ts
import rules from './rules';
chrome.declarativeNetRequest.updateDynamicRules({
removeRuleIds: rules.map((rule) => rule.id), // remove existing rules
addRules: rules
});
完整的源代码可以在 GitHub 存储库中找到 -https://github.com/requestly/modify-headers-manifest-v3 https://github.com/requestly/modify-headers-manifest-v3
如果您想使用现有的 Chrome/Firefox/Edge 扩展程序,您可以使用请求地 https://chrome.google.com/webstore/detail/requestly/mdnleldcmiljblolnjhpnblkcekpdkpa它允许您修改请求和响应标头。看看这个快照: