首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有像file_get_contents()这样的跨域工作的前端技术?

有没有像file_get_contents()这样的跨域工作的前端技术?
EN

Stack Overflow用户
提问于 2020-04-23 17:30:21
回答 1查看 131关注 0票数 0

我正在播放Google Drive视频,我有两种方法:

代码语言:javascript
复制
<video> 
  <source src="https://www.googleapis.com/drive/v3/files/videoXXX?key=APIXXX&alt=media"> 
</video>

代码语言:javascript
复制
<video>
  <source src="https://drive.google.com/uc?export=download&id=videoXXX">
</video>

它们对于小文件都工作得相当好,但是它们在div上捕获全尺寸的视频,而这些div的宽度永远不会超过200像素。我的文件有一个很大的跳跃,从12MB增加到88mb。小于12mb的都能工作,大于88的就不行,所以它们之间有一个分界点。

我发现,通过物理访问https://drive.google.com/file/d/videoXXX/view格式的URL,我可以降低质量,然后右键单击并获得低分辨率文件的URL。

我还设法用file_get_contents("https://drive.google.com/file/d/videoXXX/view")获得了这个URL并解析了结果。您可以使用URL https://docs.google.com/get_video_info?docid=videoXXX执行完全相同的操作。

问题是,这个URL依赖于用户的IP地址,并且将其嵌入到视频标记中不起作用(复制和粘贴到浏览器中也不起作用),因为它被锁定在服务器的IP上。

我尝试过使用Ajax检索它,在iframe中加载视频并抓取源,最近还尝试将服务器的IP锁定的URL下载到服务器上并从那里播放。

除非是最近的一个,我知道这是因为我不能做这种跨源,但是为什么PHP可以做呢?如何从用户IP地址加载此页面和/或获取URL客户端?

EN

回答 1

Stack Overflow用户

发布于 2020-04-23 22:25:34

我知道这是因为我不能做这种跨域操作,但是为什么

能做呢?

因为跨域是在浏览器中强制执行的,而不是在服务器中强制的。PHP会忽略跨域标头。浏览器将强制执行它们。如果不修改和重新编译浏览器源代码,就没有办法绕过它们。如果有一种绕过CORS的方法,它将是无用的,也不会存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61383845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档