3

当发出导致重定向的 HTTP 请求(例如,使用 URLLoader)时,是否可以访问重定向链中的任何 URL?

例如,假设发生以下情况:

  1. 我们向 example.com/a.gif 提出请求
  2. example.com 重定向到 example2.com/b.gif
  3. example2.com 重定向到 example3.com/c.gif

我已经盯着 URLLoader 及其各种事件的文档看了一段时间,似乎也没有办法:

  1. 指示 URLLoader 不遵循重定向
  2. 访问初始请求后涉及的任何 URL

有谁知道是否有办法做到这一点?我不喜欢使用 URLLoader,所以如果有另一个类支持此功能,我会很好地使用它。

谁能指出我正确的方向?提前致谢!

编辑- 我应该澄清一下:我知道如何使用 DOM 调试器检测 AS3 之外的重定向。我对访问 AS3 中的重定向链特别感兴趣。似乎可以通过HttpStatusEvent使用 AIR 播放器,但使用 Flash Player 时相关属性不可用。

编辑 2 - 我也尝试过使用 HTTP 客户端库(具体来说是 as3httpclientlib)。除了它从端口 843 加载跨域策略而不是通过向 /crossdomain.xml 发出 HTTP 请求这一事实之外,这有效。我正在使用的上下文需要后者,因此除非有一种方法可以强制 Socket 从 HTTP 而不是端口 843 加载跨域策略,否则使用带有 Socket 底层的东西是行不通的。

4

1 回答 1

1

重定向通常到位,因为不应再使用原始 URL。该文件在 example.com/a.gif 上不存在,因此理论上您不需要知道它。为什么需要中间请求路径?

我不知道为任何请求找到重定向链的动作脚本方式,但如果您想为特定链执行此操作,您可以使用 HttpFox for Firefox,或者在谷歌浏览器中点击 f12 并在制作时查看网络选项卡对重定向 URL 的请求。这仅在客户端被服务器重定向到新地址(HTTP 302 响应或类似内容)时才有效。如果服务器选择在某人的浏览器询问 example.com/ 时返回 example3.com/c.gif 的内容a.gif 你无能为力。

于 2013-04-04T00:23:25.723 回答