我们使用chrome webrequest API根据请求拦截和修改标头。在Chrome 72之前,我工作正常,但它不再工作了。但是当我用"<all_urls>"
替换权限时,这就是工作。另外,我尝试使用另一个域Google,例如此示例:https://developer.chrome.com/extensions/webRequest 并且也不起作用。
你知道为什么它不再起作用吗?我们暂时将使用"<all_urls>"
,但这是一个我们并不真正需要的巨大许可。
manifest.json :
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.merchantos.com/*"
]
背景.js
chrome.webRequest.onHeadersReceived.addListener(
details => ({
responseHeaders: filter(details.responseHeaders),
}),
{ urls: ['*://*.merchantos.com/*'] },
['blocking', 'responseHeaders']
)
编辑:
问题解决了。对于 Chrome 72,您现在需要将请求的主机添加到您的权限中,以便能够编辑标头。
manifest.json :
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*.merchantos.com/*",
"*://*.mywebsite.coom/*/,
]
在 Chrome 72 中,您需要在权限中指定要拦截的目标网址和发出请求的网站网址。
例如:https://www.mywebsite.com/
向要拦截的https://abc.merchantos.com
发出请求。因此:
- mywebsite.com 正在提出请求
- abc.merchantos.com 是您要拦截的目标
-
您必须在
manifest.json
中指定这两个 URL:{ ... "permissions": [ "webRequest", "webRequestBlocking", "*://*.mywebsite.com/*", "*://*.merchantos.com/*" ], ... }