Javascript 无法加载Web工作程序importScripts DomeException脚本

Javascript 无法加载Web工作程序importScripts DomeException脚本,javascript,service-worker,progressive-web-apps,web-worker,Javascript,Service Worker,Progressive Web Apps,Web Worker,我正在尝试使用importScripts self.addEventListener('fetch', event => { ... self.importScripts('idb.js'); ... } 为PWA的服务人员加载库,但继续获取 DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': The script at 'http://localhost:3000/idb.

我正在尝试使用
importScripts

self.addEventListener('fetch', event => {
  ...
  self.importScripts('idb.js');
  ...
}
为PWA的服务人员加载库,但继续获取

DOMException: Failed to execute 'importScripts' on 'WorkerGlobalScope': 
    The script at 'http://localhost:3000/idb.js' failed to load.
脚本文件在那里,内容类型正确,
application/javascript
,我也用
text/javascript
尝试过。“我的开发人员工具网络”选项卡显示请求启动后很快就失败了,没有机会攻击服务器。通过http和https的状态代码分别为
(失败)net::ERR\u CONNECTION\u densed
(通过http和
(失败)net::ERR\u failed
)。谢谢你的帮助

根据您提供的链接,您没有在HTTPS下运行。您需要HTTPS下的站点才能使用服务工作者

我原来的帖子错了@kmanzana指出本地主机被认为是“安全的来源”

在Chrome 71之前,在安装处理程序外部异步调用importScripts()可以工作。从Chrome71开始,这些调用会抛出一个运行时异常(除非之前在安装处理程序中导入了相同的URL),与其他浏览器中的行为相匹配


我必须将
importScripts
移动到我的文件或我的安装处理程序的顶层,并且它可以工作

“服务人员仅可用于“安全源”(基本上是HTTPS站点)…也被视为安全源”从我刚刚检查,以确保并提供了这个文件通过ngrok与https,我仍然看到同样的问题以及直到。获取时收到的状态代码是什么?当您直接导航时,是否能够看到响应?实际上,状态代码是
(失败)net::ERR\u CONNECTION\u densed
,当通过http和https时,状态代码是
(失败)net::ERR\u failed
。我可以通过导航看到响应,或者我道歉。我试图用HTTPS和HTTP在本地重新创建,但没有成功。