1

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 をそのファイルに入れ、イベントリスナーの外に置き、拡張機能ウィンドウの「ビューの検査: バックグラウンドページ」からそれを観察することから、バックグラウンドスクリプトが実行されることを私は知っています。

ただし、eventListener は実行されないと思います。「headers received」というメッセージはどこにも表示されていません。

4

1 に答える 1

3

マニフェスト ファイルで不要なアクセス許可を大量に宣言しましたが、最も重要なものであるホスト アクセス許可は宣言していません。たとえば、すべての http(s) リクエストをインターセプトする場合は、"*://*/*" 一致パターンを の権限セクションに追加しますmanifest.json

"permissions": [
  "webRequest",
  "webRequestBlocking",
  "*://*/*"
],
于 2015-02-20T21:14:00.927 に答える