Ошибка Service Worker - перенаправленный ответ, пока RedirectMode не соблюдается

Браузер: Firefox 58.0.2 (64-бит)

Я пытаюсь написать очень простого сервис-воркера для кэширования контента в автономном режиме, следуя инструкциям здесь и здесь.

Когда я загружаю страницу в первый раз, сервис-воркер установлен правильно. Я могу подтвердить, что он работает, заглянув в about: debugging # worker.

Однако на этом этапе, если я пытаюсь обновить страницу (онлайн или офлайн) или перейти на любую другую страницу сайта, я получаю следующую ошибку:

На сайте https://[my url]) обнаружено нарушение сетевого протокола, которое невозможно исправить.

Страница, которую вы пытаетесь просмотреть, не может быть отображена, поскольку была обнаружена ошибка передачи данных.

Пожалуйста, свяжитесь с владельцами веб-сайтов, чтобы сообщить им об этой проблеме.

Консоль показывает эту ошибку:

Не удалось загрузить «https://[my url]». ServiceWorker передал перенаправленный ответ на FetchEvent.respondWith (), в то время как RedirectMode не является «follow».

В Chrome я получаю следующее:

Неперехваченный (в обещании) TypeError: не удалось выполнить «выборку» для «ServiceWorkerGlobalScope»: невозможно создать запрос с запросом, режим которого - «навигация», и непустым RequestInit.

В этом потоке я добавил параметр {redirect: "follow"} к функции fetch (), но безрезультатно .

(Да, я вручную удалил Service Worker со страницы about: debugging после внесения изменений.)

Однако, насколько я понимаю, проблема возникает из-за ответа, а не выборки, верно? И это из-за того, что мой сервер выдает перенаправление при обслуживании запрошенного контента?

Итак, как мне бороться с перенаправлениями в сервис-воркере? Очевидно, что они будут, и я все еще хочу кэшировать данные.


person Ryan Griggs    schedule 24.04.2018    source источник


Ответы (1)


Частично создано из https://superuser.com/a/1388762/84988

Иногда у меня возникают проблемы с Gmail с Waterfox 56.2.6 на FreeBSD-CURRENT. (Waterfox 56 был основан на Firefox 56.0.2.) Иногда при простой перезагрузке страницы; иногда при загрузке страницы в восстановленном сеансе; и так далее.

FetchEvent.respondWith () | MDN начинается с предупреждения:

Это экспериментальная технология

Кратко, две ошибки, обнаруженные https://bugzilla.mozilla.org/buglist.cgi?quicksearch=FetchEvent.respondWith%28%29 не связаны.

В Интернете есть множество сообщений от пользователей Gmail с Firefox о ошибке поврежденного содержимого, нарушении сетевого протокола и т. Д. Найдено:

person Graham Perrin    schedule 29.12.2018