首页 > 解决方案 > “未捕获(承诺中)DOMException:无法为范围注册 ServiceWorker” - 脚本资源位于重定向后面,这是不允许的

问题描述

我们在 script.google.com 上开发了一个使用 AppsScript 的网络应用程序。我们尝试将其转换为渐进式网络应用程序 (PWA)。为此,我添加了一个 <link rel="manifest" href="/manifest.json.html">,它不会引发错误。

但是我们收到以下代码的错误,它应该在 index.html 的脚本标记部分加载服务工作者:

if ('serviceWorker' in navigator)
   {
     window.addEventListener('load', () => {
       navigator.serviceWorker.register('/service-worker.js.html')
       .then((reg) => {
         console.log('Service worker registered.', reg);
         });
       });
   }

我已经在上面的代码中尝试过/service-worker.js/service-worker.js.html但在当前谷歌 Chrome 浏览器的 javascript 控制台中仍然出现相同的错误,即:

脚本资源位于重定向后面,这是不允许的。Uncaught (in promise) DOMException: Failed to register a ServiceWorker for scope (' ') with script (' '): 脚本资源在重定向后面,这是不允许的。

目前我们不确定,Google 是否希望将托管在 script.google.com 上的网络应用程序转变为渐进式网络应用程序?

有没有人可以将 script.google.com 上的网络应用程序转换为渐进式网络应用程序,而不会在 Google Chrome 浏览器中出现上述错误消息?

我认为,这个错误是设计使然,因为谷歌发送每个 html 页面都有它自己的代码,其中包括我们自己在 iframe 中编写的代码,不允许访问它嵌入的原始 html。也许我错了?

标签: javascriptgoogle-apps-scriptservice-worker

解决方案


推荐阅读