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.
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?
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.