Service Worker, отказывающий в получении запросов - PullRequest
0 голосов
/ 15 ноября 2018

Совершенно новый для служащих и JS обещает, поэтому любая помощь приветствуется.

Веб-страница, которая не работает:

https://icbmaeronautics.co.uk

Ошибка, как показано в Chrome Dev Tools:

The FetchEvent for "http://localhost:3005/" resulted in a network error 
response: the promise was rejected.
Promise.catch (async)
(anonymous) @ sw.js:29
sw.js:1 Uncaught (in promise) TypeError: Failed to fetch

Наценка за регистрацию работника сервиса (вроде нормально работает)

if('serviceWorker' in navigator) {
            navigator.serviceWorker
                 .register('/sw.js')
                 .then(function() { console.log("Service Worker Registered"); });
    }

Код установки в файле сценария sw.js

self.addEventListener('install', function(e) {
   e.waitUntil(
   caches.open('airhorner').then(function(cache) {
       /* Particular urls which all install with code 200s */
   })
   );
});

И, наконец, код выборки, который, похоже, имеет проблему с event.respondWith() функцией

self.addEventListener('fetch', event => {
// Let the browser do its default thing
// for non-GET requests.
if (event.request.method != 'GET') return;

// Prevent the default, and handle the request ourselves.
event.respondWith(async function() {
// Try to get the response from a cache.
const cache = await caches.open('dynamic-v1');
const cachedResponse = await cache.match(event.request);

if (cachedResponse) {
  // If we found a match in the cache, return it, but also
  // update the entry in the cache in the background.
  event.waitUntil(cache.add(event.request));
  return cachedResponse;
}

// If we didn't find a match in the cache, use the network.
return fetch(event.request);
}());
});
...