Браузер: Firefox 58.0.2 (64-разрядная версия)
Я пытаюсь написать очень простой сервисный работник для кэширования контента в автономном режиме, следуя указаниям здесь и здесь .
Когда я загружаю страницу в первый раз, работник службы установлен правильно. Я могу подтвердить, что он работает, посмотрев о: отладке # работники.
Однако, в этот момент, если я пытаюсь обновить страницу (в сети или в автономном режиме) или перейти на любую другую страницу сайта, я получаю следующую ошибку:
Сайт по адресу https://[my url] испытал сетевой протокол
нарушение, которое не может быть устранено.
Невозможно отобразить страницу, которую вы пытаетесь просмотреть, поскольку в
передача данных была обнаружена.
Пожалуйста, свяжитесь с владельцами сайта, чтобы сообщить им об этой проблеме.
Консоль показывает эту ошибку:
Не удалось загрузить ‘https://[my url]’. ServiceWorker передал перенаправленный ответ FetchEvent.respondWith (), а RedirectMode не является «follow».
В Chrome я получаю это:
Uncaught (в обещании) TypeError: Не удалось выполнить «выборку» для «ServiceWorkerGlobalScope»: невозможно создать запрос с запросом, режим которого «навигация» и непустой RequestInit.
В этой теме я добавил параметр {redirect: "follow"} в функцию fetch (), но безрезультатно.
(Да, я вручную удалил Service Worker со страницы about: debugging после внесения изменений.)
Однако из того, что я понимаю, проблема заключается в ответе, а не в извлечении, верно? И это из-за того, что мой сервер выдает перенаправление при обслуживании запрошенного контента?
Так, как мне справиться с перенаправлениями в сервисном работнике? Очевидно, что они будут, и я все еще хочу кэшировать данные.