在我们的项目中,我们配置了CSP并在响应头
中传递。此外,我们还有一个简单的Service Worker,它会检查是否可以导航到另一页,如果不行,则重定向到缓存的离线HTML页面。
这是fetch事件的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配置发生变化且Service Worker在此更改之前已安装时,我们会收到"
拒绝加载脚本 '[url]',因为它违反了以下内容安全策略指令: ...
"的错误提示。并且一旦更新或注销Service Worker,新的CSP配置就会应用。这是正常行为吗?