zdl
9de4e10637
fix(service-worker): 修复 fetch 事件处理器的 Response 转换错误
修复了 Service Worker 的 fetch 事件处理器中 `caches.match()` 可能返回
undefined 导致的 "Failed to convert value to 'Response'" 错误。
## 问题
- 当网络请求失败且缓存中没有匹配资源时,`caches.match()` 返回 undefined
- `event.respondWith()` 必须接收 Response 对象,不能接收 undefined
- 导致浏览器控制台报错: TypeError: Failed to convert value to 'Response'
## 修复内容
- 添加请求过滤:只处理同源的 GET 请求
- 添加缓存回退检查:如果 caches.match() 返回空,返回 408 错误响应
- 确保 event.respondWith() 始终接收有效的 Response 对象
## 代码变更
public/service-worker.js:
- 添加同源请求检查 (startsWith(self.location.origin))
- 添加 GET 请求过滤
- 添加 .then(response => ...) 处理缓存未命中情况
- 返回 408 Request Timeout 响应作为最终后备
## 验证
- ✅ npm run build 构建成功
- ✅ Service Worker 不再报错
- ✅ 网络请求正常工作
2025-11-10 17:45:12 +08:00
..
2025-10-11 16:16:02 +08:00
2025-10-11 16:16:02 +08:00
2025-10-11 16:16:02 +08:00
2025-11-04 17:46:53 +08:00
2025-10-11 16:16:02 +08:00
2025-11-10 17:26:42 +08:00
2025-11-04 17:46:53 +08:00
2025-11-04 17:46:53 +08:00
2025-11-06 13:30:28 +08:00
2025-11-10 17:45:12 +08:00