2009-11-25 49 views
3

我在做一个正在被重定向的AJAX下载。我想知道请求被重定向到的最终目标网址。我使用jQuery,但也可以访问底层的XMLHttpRequest。有谁知道一种方式来获得最终的网址?有没有办法查看XMLHttpRequest检索到的最终URL?

看来我需要让最终目标将其URL插入标头或响应主体中的已知位置,然后让脚本在那里查找它。尽管如此,我希望能有一些能够工作的东西。

附加说明:我在问我的代码如何从生产代码中获取完整的URL,这些代码将从用户系统运行。我不问我在调试时如何获得完整的网址。

回答

0

最简单的方法是使用Fiddler或Wireshark来检查HTTP流量。如果您的界面使用浏览器,请在客户端使用Fiddler,否则使用Wireshark捕获线路上的流量。

0

一个词 - Firebug,它是一个Firefox插件。如果没有它,不要做任何形式的AJAX开发。

激活Firebug并选择Net,然后执行您的AJAX请求。这将显示被调用的URL,整个请求(标题和正文)以及整个响应(再次标题和正文)。它还允许你浏览你的JavaScript并调试它 - 断点,手表等。

0

我将继续介绍Firebug的建议。您将在http响应中看到url为“位置”标题。 这听起来像你也想在js中获得这个网址?如果是这样,你可以从回调中的xhr响应对象中取出它(你也可以使用FB来检查它)。 :)

+0

感谢承认我需要做到这一点编程。但我不认为位置标题将起作用。位置标题是重定向响应的标题,而不是最终响应。 XHR标题的集合将代表最终响应,而不是位置标题。没有额外的HTTP头我看到有位置。 – 2009-11-25 17:45:44

+0

这款咖啡无法使用。更正:“将代表最终响应,而不是重定向响应”。 – 2009-11-25 17:46:22

+0

嗯,我想我还没有碰到过这个......当一个xhr被重定向时,它不会产生一个新的xhr?我想你是说它使用现有的,你失去了原来的响应头文件? myReq.xmlhttp.getAllResponseHeaders()? tcpmon或fiddler是否显示2个请求? 欢呼! – 2009-11-25 19:31:55

相关问题