web-dev-qa-db-ja.com

「ServiceWorkerGlobalScope」で「fetch」の実行に失敗する原因は何ですか?「only-if-cached」は「same-Origin」モードのエラーでのみ設定できますか?

Chrome 64にアップグレードした後、新しいタブでページをロードするとこのエラーが表示されることに気付きました。

enter image description here

Service Workerのどこにあるかを特定できません。フェッチを実行するコードは次のとおりです。

self.addEventListener('fetch', function(event) {
   if (event.request.url.startsWith(self.location.Origin)) {
       event.respondWith(
           caches.match(event.request).then(function(response) {
              return response || fetch(event.request).then(function(fetch_resp){
                  return fetch_resp;
              });
           })
       );
   }
});

ここで、Service Workerについてより多くの知識を持っている人が、このエラーを解決するのを手伝ってもらえますか?

29
N. Dias

これは here で報告されたChromiumのバグだと思います。すぐに修正されるか、問題に関する詳細情報が公開されることを願っています。

Paul Irishは、次のような一時的な回避策を実施しました。

if (e.request.cache === 'only-if-cached' && e.request.mode !== 'same-Origin') {
  return;
}

サービスワーカーinstallおよびfetchリスナーのコールバック内で実行すると、エラーが発生しませんでした。

ここでPaulのコードの完全なコミット を見ることができます。

31
rjbultitude

おそらく、キャッシュ名は他のアプリケーションとは異なるものではないので、この問題は解決したようです。

0
user3067740