【问题标题】:SW-Toolbox prevents cross-origin video from loadingSW-Toolbox 防止加载跨域视频
【发布时间】:2016-03-17 07:55:04
【问题描述】:

我在我的应用程序中使用Google's SW-Toolbox library 来处理服务人员的职责;但是,每当我尝试从 Parse 加载视频(使用 Parse 进行文件托管)时,我都会在控制台中收到一系列与 CORS 相关的错误,并且视频不会显示。我知道 SW-Toolbox 参与其中,因为当我删除服务人员时,或者在不支持服务人员的浏览器中,视频加载正常。任何人都可以帮助破译这些错误,和/或提供解决方法吗?谢谢。

我用于渲染视频的代码实际上就是 HTML5 视频元素:

<video src="https://files.parsetfss.com/0e1eb489-e25d-429b-86a9-d75a65253a09/tfss-1eedfc22-4219-443d-9f16-0d879f2c378a-Taylor%20Swift%20-%20Blank%20Space.mp4" controls>

注意:这不仅仅是 Parse 问题;我尝试了另一个来自网络的随机 mp4 URL (http://techslides.com/demos/sample-videos/small.mp4) 并遇到了同样的问题。

【问题讨论】:

标签: javascript video cors service-worker


【解决方案1】:

第一个错误“Fetch API cannot load...”表示您的 service worker 正在拦截视频请求,这是一个跨域请求,并试图获取文件本身;但是服务器不允许跨域请求,所以获取失败。

这听起来很像 sw-toolbox 错误https://github.com/GoogleChrome/sw-toolbox/issues/49,受 Chrome 错误https://bugs.chromium.org/p/chromium/issues/detail?id=546076 影响。

https://github.com/GoogleChrome/sw-toolbox/issues/49#issuecomment-170868923 中建议的解决方法是不要在请求的 fetch 处理程序中调用 event.respondWith(),这对于 sw-toolbox 意味着确保您没有定义处理使用event.respondWith() 请求(既不是特定路由也不是默认路由)。

【讨论】:

  • 现在通过删除我的“默认”处理程序来解决。遗憾的是,自 10 月以来,该 bug 没有任何进展:/
猜你喜欢
  • 1970-01-01
  • 2013-01-24
  • 2018-06-02
  • 2012-12-27
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多