AbortError:无法注册ServiceWorker:无法启动ServiceWorker

时间:2017-01-02 17:19:36

标签: javascript google-chrome https service-worker self-signed

我正在尝试在Chrome中测试推送通知功能。我克隆了Google提供的示例Chrome推送通知网络应用:https://github.com/GoogleChrome/samples/tree/gh-pages/push-messaging-and-notifications

当我在localhost上使用Web server for Chrome extension HTTP服务器托管Web应用程序时,代码正常工作。当我想在移动设备上测试网络应用程序时,我无法使用Web服务器进行Chrome扩展,因为它是HTTP服务器而不是localhost,服务工作者只能使用HTTPS。所以我使用自签名证书创建了一个基于python的HTTPS服务器,并在那里托管了web-app。

现在我得到AbortError: Failed to register a ServiceWorker: ServiceWorker cannot be started 在注册服务工作者时如下:

    navigator.serviceWorker.register('./service-worker.js')

service-worker.js与html文件位于同一目录中,以及我调用此方法的js文件。

关于服务工作者的文档不多。此错误太模糊,无法弄清楚任何事情。请帮我弄清楚这个错误的根本原因。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。服务工作者仅在安全的HTTPS网络上工作。我创建的Python HTTPS服务器是使用自签名证书签名的,因此不安全。我使用ngrok创建一个到localhost的安全https隧道然后它工作