如何用 javascript 获得视频的重定向 URL?

2017 年 1 月 28 日
 panyanyany

在某个 video 节点中有个视频 URL :

<video preload="auto" width="100%" height="100%">
    <source src="http://www.example.com/1.mp4" type="video/mp4" label="360p" res="360">
</video>

但这个 URL 在请求的时候服务器会返回一个 302 ,以及一个 location header ,所以它会被重定向到另一个不同域名的 URL 。

那么问题来了,如何用 javascript 获得这个重定向后的 URL ?

3827 次点击
所在节点    问与答
13 条回复
hanzichi
2017 年 1 月 28 日
JS 能获取嘛?抓包吧?

坐等大神
exoticknight
2017 年 1 月 28 日
node 的话你用的库应该会提供查看 header 的功能吧
AJAX 就没办法了, follow redirect 是浏览器的行为,对 AJAX 是透明的
exoticknight
2017 年 1 月 28 日
查了一下 fetch ,似乎可以处理诶、
https://fetch.spec.whatwg.org/#concept-request-redirect-mode
heimeil
2017 年 1 月 28 日
js 获取到 src 再用 HEAD 请求拿到 header 里的 location ,看看这办法合适不
binux
2017 年 1 月 28 日
跨域吗
panyanyany
2017 年 1 月 28 日
r#3 @exoticknight 我看到这一条,似乎意思是说不允许用 js 看到 redirect 的信息 https://fetch.spec.whatwg.org/#atomic-http-redirect-handling
panyanyany
2017 年 1 月 28 日
r#4 @heimeil 这个也是不行的,同样会因为跨域的原因导致失败。我查了下,貌似是说不允许用 js 拿到 redirect 信息,会有被攻击的风险。
panyanyany
2017 年 1 月 28 日
r#5 @binux 是的,我查了下资料,不允许用 js 拿到 redirect 的信息……
SoloCompany
2017 年 1 月 28 日
nfroot
2017 年 1 月 29 日
简单,用任何一个后端语言探测一下就有了。
lslqtz
2017 年 1 月 30 日
我想知道用扩展怎么抓...
lslqtz
2017 年 1 月 30 日
@panyanyany 客户端请求,服务器获得重定向的 url 也可以,或者扩展...
mkb
2018 年 8 月 30 日
不允许 js 获取重定向 url 是浏览器设置的,理论上 js 可以做到,只是浏览器不允许,所以只需要关闭浏览器的跨域安全性检查,或者直接用无头浏览器 phantomjs,这个浏览器不会显示界面,也可以很方便的关闭跨域安全性检查。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/337267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX