Я создал сервисного работника по следующему коду:
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}).catch(function(err) {
console.log('ServiceWorker registration failed: ', err);
});
});
}
и получите точный ответ, и событие 'install' отправляет в sw. js ОК, но событие 'fetch' никогда не генерирует.
Я использую http-сервер (node js) с портом 80 (http), я видел мой запрос в DevTools Chrome и в консоли от http-сервера, но мой сервисный работник не отправил ни одного.
Код моего работника службы:
self.addEventListener('install', () => {
console.log("event - install"); // OK
});
self.addEventListener("fetch", (e) => {
console.log("A"); // BAD
return e.request;
});
Я использую этот код в конце тела
setTimeout(() => {
alert("S");
fetch("/svg.svg", {
method: "GET"
});
}, 10000);