启用Service Worker后网站出现大量CORS错误的技术求助
Service Worker 代理跨域图片触发CORS错误排查
在支持Service Worker的浏览器中打开我的网站,等待Service Worker安装完成后手动刷新页面(不禁用缓存),多数图片无法加载,控制台抛出以下CORS错误:
Access to fetch at 'https://image.kmar.top/cover/bangumis.png!/fw/477' from origin 'https://xxx.netlify.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
这类错误通常源于服务器未配置Access-Control-Allow-Origin响应头,但我已在图片服务器端正确配置了该头。执行以下操作后,图片可正常加载且无CORS错误:
- 使用
ctrl + F5强制刷新页面 - 开启开发者工具的「Disable Cache」选项后刷新
- 开启「Network Bypass」(跳过Service Worker的
fetch事件)后刷新
我在Service Worker中通过以下代码加载资源:
fetch('https://xxx', { mode: 'cors', credentials: 'same-origin' // 注:原代码存在拼写错误same-orgin,已修正为正确拼写 })
目前我通过在Service Worker中跳过这些图片链接的代理来临时规避错误,但这并非长久之计,希望找到问题根源,避免其他使用该Service Worker的网站出现同类错误。
内容的提问来源于stack exchange,提问作者kmar
相关产品推荐
相关产品推荐

