【问题标题】:Get the final URL after (lots of) redirection with Javascript使用 Javascript 进行(大量)重定向后获取最终 URL
【发布时间】:2013-02-24 23:15:49
【问题描述】:

我想只用 Javascript 获得重定向后的最终 URL。

例如,我有 url http://example.com/testClient,它会根据客户端 cookie 重定向到不同的位置带有哈希和查询参数。我只想使用 Javascript 获取最终 URL。

URL 重定向到不同的位置,根据 cookie、用户代理、平台等在不同的客户端上使用不同的哈希和不同的查询参数。

这类似于使用 Javascript 获取 bit.ly 链接的原始(扩展)URL。

关于如何做到这一点有什么建议吗??

【问题讨论】:

  • 这个问题实在是太绕口了,可以尝试一下拆分一下吗?
  • 我想在重定向发生后获取最终 URL。就像 bit.ly 链接的最终 URL 一样。我只想用 Javascript 来做这个。
  • 它会只在一台主机上吗?还是会重定向到不同的网站?
  • 它可能有 a.ex.com 到 b.ex.com 之类的内容,但会保留在 *.ex.com 或 ex.com 上
  • 好的,使用我最好的 google-fu(我是专业人士)我没有看到任何暗示解决方案的东西。我最好的猜测是破解 iframe 以泄露其实际位置。

标签: javascript url redirect


【解决方案1】:

您可以使用如下示例中的 iframe:http://jsfiddle.net/BaliBalo/qsX6U/

iframe.addEventListener('load', function(){
    console.log(iframe.contentWindow.location.href);
}, false);

但是有一个问题:最终 URL 的域必须与运行脚本的域相同,否则会引发跨域错误并且无法访问 contentWindow 属性。

【讨论】:

  • 这就是问题所在,域不一样。只是重定向 URL 的域将保持不变。
  • 所以我认为在 javascript 现代浏览器中没有办法这样做,因为它们都阻止跨域访问以确保安全。您可以使用服务器端脚本绕过它并使用 ajax 调用它,但我没有想到完整的 js 解决方案。
  • 我不能以服务器端的方式进行。 URL 基于客户端 cookie 重定向。
猜你喜欢
  • 2011-03-05
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2013-05-02
  • 1970-01-01
  • 2022-09-28
相关资源
最近更新 更多