Javascript 如何使用子域在其他域上注册service worker

Javascript 如何使用子域在其他域上注册service worker,javascript,service-worker,Javascript,Service Worker,我有一个类似于域的和托管的服务人员js和主js。我正在尝试在其他网站上注册服务人员,如。到目前为止我所尝试的:我已经创建了子域like,并将主js和服务人员js都放在该文件夹中,并使用该子域like在'example2.com'上注册服务人员,但它给我的错误如下: SecurityError: The operation is insecure. 我有两个关于这个条件的问题: 是否可以注册托管在不同域上的服务工作者 如果可能的话,为什么它会给我这个错误以及如何做 我只使用javascript来

我有一个类似于域的和托管的服务人员js和主js。我正在尝试在其他网站上注册服务人员,如。

到目前为止我所尝试的:
我已经创建了子域like,并将主js和服务人员js都放在该文件夹中,并使用该子域like在'example2.com'上注册服务人员,但它给我的错误如下:

SecurityError: The operation is insecure.
我有两个关于这个条件的问题:

  • 是否可以注册托管在不同域上的服务工作者
  • 如果可能的话,为什么它会给我这个错误以及如何做
  • 我只使用javascript来避免任何依赖关系。

    提前谢谢你



    他们的服务人员跨域注册是一种棘手的方式,几乎每个网站都是通过这种方式注册的。您可以使用弹出窗口进行注册。

    步骤: 1.在你的子域目录中创建一个新的html页面,如
    2.在这个index.html页面中添加你的main.js。
    3.现在,不要用链接在打开的弹出窗口中加载main.js


    一旦您的服务人员注册,他们将不再依赖于域,您可以用它做任何您想做的事情。通过这种方式,您可以注册service worker而无需重定向。

    谢谢,这就成功了。我正在寻找一整天的解决方案。我们应该什么时候打开弹出窗口?“允许或拒绝”弹出窗口在注册服务人员之前不会显示。您是否修复了它?我也面临同样的问题。我还需要从另一个域加载服务工作者文件。桑塔布提供的答案适合我。您可以使用弹出窗口,它将在您的第一个域网站中打开,并具有第二个域网站的url。