gpt4 book ai didi

service-worker - Service Worker 和 CSP 配置更改

转载 作者:行者123 更新时间:2023-12-04 08:54:22 25 4
gpt4 key购买 nike

在我们的项目中,我们配置了 CSP 并传入了 Response Headers .此外,我们还有简单的 Service Worker,它检查是否可以导航到另一个页面,以及是否可以重定向到缓存的离线 html 页面。
这是用于获取事件的 Service Worker 部分代码

self.addEventListener('fetch', function (event) {
event.respondWith(
// Try to find requested resource in the cache
caches
.match(event.request).then(function (response) {
// Fallback to network if it's not in cache
return response || fetch(event.request);
})
.catch(getFallbackResponse(event))
);
});

但是当 CSP 配置发生变化并且在 CSP 配置发生变化之前安装了 Service Worker 时,我们得到
Refused to load the script '[url]' because it violates the following Content Security Policy directive: ...错误。一旦我们更新或取消注册 Service Worker,就会应用新的 CSP 配置。

这是预期的行为吗?

最佳答案

看一下MDN对 skip​Waiting() 的描述,好像需要service worker立即更新。 :

forces the waiting service worker to become the active service worker.

Use this method with Clients.claim() to ensure that updates to the underlying service worker take effect immediately for both the current client and all other active clients.


Clients.claim()是为了确保其他可能打开的选项卡中的 Service Worker 也会更新。

关于service-worker - Service Worker 和 CSP 配置更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44282029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com