我在我的应用程序中使用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>
注意:这不仅仅是一个解析问题;我尝试了来自网络(http://techslides.com/demos/sample-videos/small.mp4)的另一个随机mp4 URL,并遇到了同样的问题。
最佳答案
第一个错误“获取API无法加载…”,表示您的服务工作者正在拦截对视频的请求(该请求是跨源请求),并尝试获取文件本身。但是服务器不允许跨域请求,因此提取失败。
这听起来很像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中建议的解决方法是不要在请求的获取处理程序中调用event.respondWith()
,这对于sw-toolbox意味着确保您未定义使用event.respondWith()
处理请求的路由(都不是特定路由)或默认路由)。
关于javascript - SW-Toolbox阻止加载跨域视频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36048577/