すべてのリクエストに単純なヘッダーを添付するために、サービスワーカーを(数時間)使用しようとしています。イライラするのは、一種の作品です。
試み1:
self.addEventListener("fetch", event => {
const modifiedHeaders = new Headers({
...event.request.headers,
'API-Key': '000000000000000000001'
});
const modifiedRequest = new Request(event.request, {
headers: modifiedHeaders,
});
event.respondWith((async () => {
return fetch(modifiedRequest);
})());
});
上記のコードはHTMLファイルで機能しますが、CSSおよびJSファイルでは次のエラーが発生します
ReferenceError:ヘッダーが定義されていません
ヘッダー要件を無効にすると、ページに画像とJavaScriptが読み込まれ、通常のように操作できます。
試み2:
var req = new Request(event.request.url, {
headers: {
...event.request.headers,
'API-Key': '000000000000000000001'
},
method: event.request.method,
mode: event.request.mode,
credentials: event.request.credentials,
redirect: event.request.redirect,
referrer: event.request.referrer,
referrerPolicy: event.request.referrerPolicy,
bodyUsed: event.request.bodyUsed,
cache: event.request.cache,
destination: event.request.destination,
integrity: event.request.integrity,
isHistoryNavigation: event.request.isHistoryNavigation,
keepalive: event.request.keepalive
});
この試みでは、単に新しいリクエストを作成し、CSSとJSファイルのリクエストに新しいヘッダーを正常に含めました。ただし、POSTまたはリダイレクトを実行すると、動作が停止し、奇妙な動作をします。
これに対する正しいアプローチは何ですか?試行1の方が適切な方法だと思いますが、何をしようとも、要求に基づいてヘッダーオブジェクトを作成できないようです。
私が使用しているクロムのバージョンは
バージョン78.0.3904.70(公式ビルド)(64ビット)
このサイトは内部開発者ツールであるため、ブラウザー間の互換性は必要ありません。そのため、追加のライブラリをロードしたり、実験的な機能を有効にしたりできます。