javascript video - Почему я вижу «Ошибка-только защищенное происхождение разрешено» для моего сервисного работника?



html title (4)

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

ERROR "Uncaught (in promise) DOMException: Only secure origins are allowed

Код JS:

(function () {
    'use strict';

    // TODO add service worker code here
    if ('serviceWorker' in navigator) {
        navigator.serviceWorker
            .register('service-worker.js')
            .then(function () {
                console.log('Service Worker Registered');
            });
    }
})();

Answers

Попробуйте использовать http://127.0.0.1:8080 для локального размещения вместо http://192.168.29.53:8080


Вы можете проверить протокол, прежде чем регистрировать такого сервисного работника, location.protocol === 'https:' && serviceWorker.register('service-worker.js')


Из часто задаваемых вопросов :

В: Появляется сообщение об ошибке «Разрешено только безопасное происхождение». Зачем?

A: Работники службы доступны только для «безопасного происхождения» (HTTPS-сайты, в основном) в соответствии с политикой, предпочитающей безопасное происхождение для новых мощных функций. Однако http: // localhost также считается безопасным источником, поэтому, если вы можете, разработка на localhost - это простой способ избежать этой ошибки.

Вы также можете использовать флаг командной строки --unsafely-treat-insecure-origin-as-secure . Этот флаг должен быть объединен с --user-data-dir . Например:

$ ./chrome --user-data-dir=/tmp/foo --unsafely-treat-insecure-origin-as-secure=http://your.insecure.site

Если вы хотите протестировать https: // localhost с самозаверяющим сертификатом, выполните следующие действия:

$ ./chrome --allow-insecure-localhost https://localhost

Вы также можете использовать --ignore-certificate-errors .


Для простого HTML-проекта:

cd project
python -m SimpleHTTPServer 8000

Затем просмотрите файл.





javascript jquery progressive-web-apps