【发布时间】:2021-04-06 02:13:34
【问题描述】:
当我在视频元素上包含控件时,例如:
<video controls >
<source src={"https://another-server/myVideo.mp4"} type="video/mp4"/>
</video>
我得到了一个内置的下载功能,如下所示。
视频下载正常。但是当我尝试使用 javascript 和 blob 保存视频时,我遇到了 CORS 政策问题。为什么 html5 不是这样?
【问题讨论】:
-
副本上的“关于同源策略”和“为什么同源策略仅适用于网页中的 JavaScript”部分特别相关。
-
@Quentin 不,相关帖子中没有回答。它只是解释了 CORS 政策适用的原因和时间。但这并不能解释我的要求。我在问为什么 html5 内置功能有任何不同,因此即使我尝试这样做时遇到了 CORS 问题,它们从其他来源下载内容也不会出现问题。
-
正如副本所说,您(用户正在访问的网站的开发人员)没有编写内置于执行下载的浏览器中的代码,因此您不能这样做代码恶意窃取对方愿意提供给拥有浏览器的用户的数据。
-
@Quentin 所以我认为我们信任 html5 而不是 javascript。这意味着用户必须单击按钮才能下载内容(使用视频元素),而如果还允许使用 javascript,它还可以使用其他用户的计算资源来处理此内容。但我一直认为CORS与安全有关,不是防盗机制。
-
@Quentin 我希望网络社区有时会同意开放 js 库和一个有用的 API,它可以在没有任何 CORS 问题的情况下执行,因为并非所有 js 都试图窃取内容,而只是为了让一个用户的ui更方便。
标签: javascript html cors html5-video blob