Как зарегистрировать сервис-воркер из другого домена

Я пытаюсь реализовать Push-уведомления для Google Chrome. Я хочу зарегистрировать сервис-воркер из другого домена.

Пример: код Service Worker находится по адресу: https://example.com/.

Я хочу зарегистрировать сервис-воркер (который находится в указанном выше домене) из другого домена: https://example2.com/

Есть ли способ добиться того же. Потому что, когда я пытаюсь включить страницу работника службы (пример) в качестве iFrame, работник службы выдает ошибку при регистрации

«Не пойманный (в обещании) DOMException: регистрация не удалась — разрешение отклонено»


person A NooB    schedule 10.12.2015    source источник
comment
мы смогли решить эту проблему, показав https://example.com в новом всплывающем окне с window.open. не идеальное решение, но лучше, чем ничего   -  person Oleg    schedule 10.12.2015


Ответы (1)


Это кажется невозможным, так как исключение SecurityError будет включено в отклоненное обещание если источник scriptURL не является источником клиента. См. спецификацию алгоритма регистрации.

Даже если это возможно, в этом будет мало преимуществ, поскольку scope, URL-адрес должен иметь то же происхождение, что и страница, на которой регистрируется сервис-воркер.

Что касается iFrame, существуют ограничения, запрещающие вам создавать https: на странице http: и использовать ее для регистрации работника службы. См. https://stackoverflow.com/questions/31702247/domexception-when-registering-service-worker-inside-an-https-iframe .

person oldergod    schedule 17.12.2015