我可以在没有浏览器安全错误的情况下在 HTTPS 域上播放 HTTP 流媒体吗?浏览器默认阻止该请求。
我使用 hls.js 库来支持 .m3u8 桌面播放。当我在没有它的情况下本地播放内容时(通过移动设备或 Mac 的 Safari),浏览器会显示警告但不会阻止请求。但是当我在启用 hls.js 的相同设备上或通过桌面浏览器播放它时,请求被阻止。
最佳答案
You can't.
混合内容,当您在 https 站点上通过 http 提供资源时,可以是被动的或主动的。
被动:
- 图片
- 视频
- 音频
活跃:
- Javascript
- CSS
- iFrame
- 对象(闪光灯等)
- XHR(使用 javascript 发出的请求)
问题是您的视频是使用 hls.js 提取的,它被认为是事件内容(请参阅最后一个项目符号),因此被阻止。
但是,如果浏览器通过 <video>
获取它元素,它被认为是被动内容并被允许。
建议/解决方法
- 将您的视频服务器切换到 HTTPS。这是首选选项。 HTTPS is faster . You said that your server's administrator says that the HTTPS will "overload videoservers" .我不信。试试看。
If you stop reading now you only need to remember one thing: SSL/TLS is not computationally expensive any more. -- Adam Langley (Google)
- 切换到不同的视频格式,例如 mp4 或 ogg 或 load both .您的网站加载速度会更快,因为您不需要图书馆。
切换到 http不要这样做
关于javascript - HTML5 : Playing HTTP streaming on HTTPS domain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44392426/