Оказывается, вы пытаетесь загрузить служебный скрипт из небезопасного места.Я рекомендую вам предоставить вам страницы разработки с http://localhost
, чтобы сделать первые шаги с работниками сферы обслуживания.На сайте "Готов ли ServiceWorker Ready?" вы найдете отличный "путеводитель".
Убедитесь, что вы:
Вы выигралиневозможно загрузить сценарий работника службы из протоколов http
или https
без действительного сертификата.Обслуживание страницы с http://localhost
является исключением;localhost
считается безопасным для облегчения разработки.См. Также полный список «безопасных» источников, реализованный в Chrome .
Вы получите ту же ошибку, если файл отсутствует или браузер не может загрузить его из протокола,который вы использовали:
A bad HTTP response code (404) was received when fetching the script.
Failed to load resource: net::ERR_INVALID_RESPONSE
ServiceWorker registration failed: TypeError: Failed to register a ServiceWorker:
A bad HTTP response code (404) was received when fetching the script.
Если сертификат SSL вашего веб-сайта недействителен, включая самозаверяющие сертификаты, вы получите следующую ошибку:
An SSL certificate error occurred when fetching the script.
Failed to load resource: net::ERR_CERT_DATE_INVALID
ServiceWorker registration failed: DOMException: Failed to register a ServiceWorker:
An SSL certificate error occurred when fetching the script.
Если вы используетеСамоподписанный сертификат, вы можете установить сертификат SSL вашего «поддельного» ЦС в качестве доверенного корневого центра сертификации в веб-браузере или ОС.Браузер больше не будет запрашивать у вас исключения при доступе к вашей странице, и работник сервиса будет хорошо загружаться.
Если вы используете Chrome, вы можете использовать параметры --unsafely-treat-insecure-origin-as-secure
и --allow-insecure-localhost
, чтобы заставить браузер загрузить скрипт сервисного работника из-за нелегального происхождения .Но делайте это только в своей среде разработки.Не на производственном веб-сайте.