我有一个Chrome扩展程序,我试图让它为所有页面添加响应标头。
这是我在清单中的内容:
"permissions": [
"storage",
"clipboardRead",
"clipboardWrite",
"webRequest",
"webRequestBlocking",
"background"
],
"background": {
"scripts": ["background-script.js"]
},
这是我在background-script.js
中的内容chrome.webRequest.onHeadersReceived.addListener(function(details){
console.log('headers received');
details.responseHeaders.push({ name: 'X-XSS-Protection', value: '0' });
return { responseHeaders: details.responseHeaders };
}, {
urls: ['<all_urls>'],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
}, ['blocking', 'responseHeaders']);
我知道后台脚本的执行,从在该文件中放入console.log但在事件监听器之外,并从&#34; Inspect views:background page&#34;在“扩展程序”窗口中。
但是,我不认为eventListener会执行 - 我还没有看到&#34;标题已收到&#34;留言任何地方。
答案 0 :(得分:2)
您已在清单文件中声明了大量不必要的权限,但不是最重要的权限:主机权限。例如,如果您想拦截每个http(s)请求,请将"*://*/*"
match pattern添加到manifest.json
的权限部分:
"permissions": [
"webRequest",
"webRequestBlocking",
"*://*/*"
],