V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
panyanyany
V2EX  ›  问与答

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

  •  
  •   panyanyany · 2017-01-28 18:32:21 +08:00 · 3301 次点击
    这是一个创建于 2853 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在某个 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 ?

    13 条回复    2018-08-30 16:36:52 +08:00
    hanzichi
        1
    hanzichi  
       2017-01-28 20:05:51 +08:00
    JS 能获取嘛?抓包吧?

    坐等大神
    exoticknight
        2
    exoticknight  
       2017-01-28 20:27:49 +08:00
    node 的话你用的库应该会提供查看 header 的功能吧
    AJAX 就没办法了, follow redirect 是浏览器的行为,对 AJAX 是透明的
    exoticknight
        3
    exoticknight  
       2017-01-28 20:30:24 +08:00
    查了一下 fetch ,似乎可以处理诶、
    https://fetch.spec.whatwg.org/#concept-request-redirect-mode
    heimeil
        4
    heimeil  
       2017-01-28 20:46:15 +08:00 via Android
    js 获取到 src 再用 HEAD 请求拿到 header 里的 location ,看看这办法合适不
    binux
        5
    binux  
       2017-01-28 21:35:24 +08:00 via Android
    跨域吗
    panyanyany
        6
    panyanyany  
    OP
       2017-01-28 21:46:23 +08:00
    r#3 @exoticknight 我看到这一条,似乎意思是说不允许用 js 看到 redirect 的信息 https://fetch.spec.whatwg.org/#atomic-http-redirect-handling
    panyanyany
        7
    panyanyany  
    OP
       2017-01-28 21:49:34 +08:00
    r#4 @heimeil 这个也是不行的,同样会因为跨域的原因导致失败。我查了下,貌似是说不允许用 js 拿到 redirect 信息,会有被攻击的风险。
    panyanyany
        8
    panyanyany  
    OP
       2017-01-28 21:50:43 +08:00
    r#5 @binux 是的,我查了下资料,不允许用 js 拿到 redirect 的信息……
    SoloCompany
        9
    SoloCompany  
       2017-01-28 22:29:09 +08:00
    nfroot
        10
    nfroot  
       2017-01-29 11:03:15 +08:00
    简单,用任何一个后端语言探测一下就有了。
    lslqtz
        11
    lslqtz  
       2017-01-30 07:38:47 +08:00 via iPhone
    我想知道用扩展怎么抓...
    lslqtz
        12
    lslqtz  
       2017-01-30 07:49:29 +08:00 via iPhone
    @panyanyany 客户端请求,服务器获得重定向的 url 也可以,或者扩展...
    mkb
        13
    mkb  
       2018-08-30 16:36:52 +08:00
    不允许 js 获取重定向 url 是浏览器设置的,理论上 js 可以做到,只是浏览器不允许,所以只需要关闭浏览器的跨域安全性检查,或者直接用无头浏览器 phantomjs,这个浏览器不会显示界面,也可以很方便的关闭跨域安全性检查。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.