Firefox:服务工作者:安全错误:DOMException:操作不安全

Ram*_*ama 7 javascript firefox service-worker progressive-web-apps service-worker-events

在中app.js,我正在检查导航器对象中是否存在serviceWorker,如果可用,请注册SW。

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('./service-worker.js', { scope: './' })
        .then(function(registration) {
            console.log("Service Worker Registered!");
        }).catch(function(err) {
            console.log("Service Worker not registered!", err);
        });
}
Run Code Online (Sandbox Code Playgroud)

尝试注册软件时,我在Firefox中收到以下错误。我还确保该service-worker.js文件在src目录下。

在此处输入图片说明

在Firefox(版本59.0.2)中检查我的about:config,我启用了服务辅助程序和存储api。因此,这不应该是一个问题。

在此处输入图片说明在此处输入图片说明

PS:相同的代码在Chrome上可以正常使用。

小智 12

如果 serviceworker 的文件以错误的 MIME 类型传递,则 Firefox 中也会出现相同的错误消息。在这种情况下,设置正确的 MIME 类型可以解决问题。如果您动态地(例如使用 PHP)传递 serviceworker 的文件,则可能会发生错误的 MIME 类型。

正确的 MIME 类型必须是

Content-Type: application/javascript; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)


Ste*_*ser 10

您是否在about:preferences#privacy中检查过cookie设置,它必须是“一直保持到过期”,如果您已选择“一直保持到我关闭firefox”,则sw不会注册。

在此处输入图片说明

您可以在此线程上找到详细信息:https : //bugzilla.mozilla.org/show_bug.cgi?id=1429714

  • 如果我们作为开发人员有必要在 About:Config 和 about:preferences#privacy 中启用这些设置以使 Service Worker 实际工作或注册,那么它们不会被破坏或不会为几乎所有实际访问该服务的用户注册吗网站,大多数非开发人员都不会启用这些设置? (11认同)