ServiceWorker прерывает некоторые из моих вызовов API - PullRequest
0 голосов
/ 13 марта 2019

Я использую файл serviceWorker.js, созданный с использованием create-react-app, с целью показать пользовательскую автономную страницу пользователю, когда пользователь находится в автономном режиме. Когда я регистрирую serviceWorker, единственное, что я кеширую, это файл изображения. Кажется, все работает, находи и пользуйся, пока я не начну делать HTTP-запросы к своему бэкэнд-API. В частности, я получаю 404 error not found, когда пытаюсь получить доступ к этим бэкэнд-API.

Я также использую workbox для генерации своего таможенного работника. Вот мой шаблон:

/* eslint-disable */

importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.1.0/workbox-sw.js");

const precacheManifest = [];

workbox.precaching.precacheAndRoute(precacheManifest);

const htmlStr = `
<html>
  ...
</html>  
`;

this.addEventListener('fetch', (event) => {
  event.respondWith(
    fetch(event.request.url).catch(() => {
      // Return custom the offline page
      if (navigator && !navigator.isOnline) {
        return new Response(htmlStr, {
          headers: {'Content-Type': 'text/html'}
        });
      }
    })
  );
});

Так что я думаю, что происходит странная вещь. Пожалуйста, имейте мое объяснение:

Итак, когда я впервые захожу на домен моей веб-страницы, он регистрирует работника сервиса: enter image description here

Когда я обновляю страницу, вдруг все выглядит так, будто мои работники службы выдают ошибки?

enter image description here

Обратите внимание на красный крестик ошибки. Я нажимаю на нее, чтобы увидеть ошибку, но она ничего не показывает. Кроме того, я также заметил, что когда сервисные работники выдают подобные ошибки, мои почтовые запросы перестают работать. Другими словами, когда я не обновляю страницу и не возникает ошибки, почтовые запросы работают так, как должны. Есть идеи, что происходит?

...