无法使用Chrome扩展程序添加响应标头

时间:2015-02-20 19:00:59

标签: javascript google-chrome-extension response-headers

我有一个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;留言任何地方。

1 个答案:

答案 0 :(得分:2)

您已在清单文件中声明了大量不必要的权限,但不是最重要的权限:主机权限。例如,如果您想拦截每个http(s)请求,请将"*://*/*" match pattern添加到manifest.json的权限部分:

"permissions": [
  "webRequest",
  "webRequestBlocking",
  "*://*/*"
],