我在我的应用程序中使用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>
注意:这不仅仅是解析问题;我尝试了另一个来自网络的随机mp4网址(http://techslides.com/demos/sample-videos/small.mp4)并且遇到了同样的问题。
答案 0 :(得分:2)
第一个错误,&#34; Fetch API无法加载...&#34;表示您的服务工作者正在拦截视频请求,这是一个跨源请求,并尝试自己获取文件;但服务器不允许跨源请求,因此提取失败。
这听起来很像sw-toolbox bug https://github.com/GoogleChrome/sw-toolbox/issues/49,受Chrome bug 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()
定义处理请求的路由(既不是特定路由也不是默认路由)。