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

2017-01-28 18:32:21 +08:00
 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 ?

3301 次点击
所在节点    问与答
13 条回复
hanzichi
2017-01-28 20:05:51 +08:00
JS 能获取嘛?抓包吧?

坐等大神
exoticknight
2017-01-28 20:27:49 +08:00
node 的话你用的库应该会提供查看 header 的功能吧
AJAX 就没办法了, follow redirect 是浏览器的行为,对 AJAX 是透明的
exoticknight
2017-01-28 20:30:24 +08:00
查了一下 fetch ,似乎可以处理诶、
https://fetch.spec.whatwg.org/#concept-request-redirect-mode
heimeil
2017-01-28 20:46:15 +08:00
js 获取到 src 再用 HEAD 请求拿到 header 里的 location ,看看这办法合适不
binux
2017-01-28 21:35:24 +08:00
跨域吗
panyanyany
2017-01-28 21:46:23 +08:00
r#3 @exoticknight 我看到这一条,似乎意思是说不允许用 js 看到 redirect 的信息 https://fetch.spec.whatwg.org/#atomic-http-redirect-handling
panyanyany
2017-01-28 21:49:34 +08:00
r#4 @heimeil 这个也是不行的,同样会因为跨域的原因导致失败。我查了下,貌似是说不允许用 js 拿到 redirect 信息,会有被攻击的风险。
panyanyany
2017-01-28 21:50:43 +08:00
r#5 @binux 是的,我查了下资料,不允许用 js 拿到 redirect 的信息……
SoloCompany
2017-01-28 22:29:09 +08:00
nfroot
2017-01-29 11:03:15 +08:00
简单,用任何一个后端语言探测一下就有了。
lslqtz
2017-01-30 07:38:47 +08:00
我想知道用扩展怎么抓...
lslqtz
2017-01-30 07:49:29 +08:00
@panyanyany 客户端请求,服务器获得重定向的 url 也可以,或者扩展...
mkb
2018-08-30 16:36:52 +08:00
不允许 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