Quelles sont les causes d'un échec à exécuter 'fetch' sur 'ServiceWorkerGlobalScope': 'only-if-cached' ne peut être défini qu'avec une erreur de mode 'same-origin'?

après la mise à jour vers Chrome 64, j'ai réalisé que cette erreur apparaît lorsque je charge ma page sur un nouvel onglet.

enter image description here

Je ne peux pas identifier où il est sur le travailleur des services. Voici mon code pour exécuter l'extraction:

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;
              });
           })
       );
   }
});

Est-ce que quelqu'un ici, qui a plus de connaissances sur le travailleur des services, pourrait m'aider à résoudre cette erreur?

20
demandé sur N. Dias 2018-01-26 17:35:18

1 réponses

je crois que c'est un Chrome bug qui a été rapporté ici. Il est à espérer qu'elle sera bientôt corrigée ou que d'autres informations sur la question seront publiées.

Paul Irish a mis en place un travail temporaire autour, qui est comme suit:

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

j'ai couru à l'intérieur de la fonction de rappel pour le travailleur des services install et fetch écouteurs et il a évité l'erreur.

Vous pouvez voir le plein de commettre de Paul code ici.

15
répondu rjbultitude 2018-04-08 17:14:03