【发布时间】:2016-06-08 03:59:40
【问题描述】:
w3:
6.2 跨域资源和 CORS¶
应用程序倾向于缓存来自 CDN 或其他来源的项目。 可以使用<script>, <img>, <video>直接请求其中许多 和<link>元素。如果这种运行时将受到极大的限制 离线时协作中断。 类似地,可以 XHR 多种异源资源,当 设置了适当的 CORS 标头。ServiceWorkers 通过允许缓存获取和缓存离源来实现这一点 项目。但是,有一些限制。一、不同于同源资源 在缓存中作为具有 type 属性集的 Response 对象进行管理 到“基本”,存储的对象是具有类型属性集的响应对象 为“不透明”。类型为“不透明”的响应提供的 API 比 回复键入“基本”;无法读取或设置正文和标题,也不能读取或设置很多 对其内容的其他方面进行检查。它们可以传递给 event.respondWith(r) 方法以与键入“基本”的响应相同的方式, 但不能以编程方式有意义地创建。这些限制是 有必要保留平台的安全不变量。允许缓存 在大多数情况下,存储它们可以让应用程序避免重新架构。
我已将 CORS 标头设置为:
Access-Control-Allow-Origin:https://xxx.xx.x.com
Access-Control-Allow-Credentials:true
但我仍然收到“不透明”响应,我无法确保代码为 200。 如果我缓存这些不成功的响应,就会导致一些问题。
例如,网络密友导致跨域资源的 404, 并且我缓存它,然后我将始终使用这个 404 缓存响应,即使是 thongth 时 网络问题得到纠正。同源资源没有这个问题。
【问题讨论】:
标签: javascript caching cross-domain service-worker