Lui*_*uis 9 ajax jquery redirect jqxhr
有没有办法知道返回的jqXHR对象是否从另一个请求重定向?例如,拥有以下代码:
jQuery.ajax({
type: 'POST',
url: 'http://example.com/page.html',
complete: function(response, status) {
console.log(response.statusCode);
// do something
}
});
Run Code Online (Sandbox Code Playgroud)
如果使用301或302状态代码重定向ajax url,则响应将是重定向页面的结果,并将返回200(OK)状态代码.我认为这是一个jQuery的错误(不知道这是否是预期的恶作剧,因为最终的响应实际上是成功的)我不能得到原始响应Headers来检查是否存在Location Header,因为这是仅适用于重定向的请求.
具有上述代码的Firebug通过XHR记录这两个请求
http://example.com/page.html 302(暂时移动) http://example.com/redirect.html 200(确定)
但是jQuery只返回第二个请求的数据.
也许有办法从第一个请求中获取数据?或者获取响应URL并将其与原始请求中的URL进行比较?
小智 0
我发现wireshark 可能会有所帮助。它是免费的,并且可能能够找出 jqXHR 对象发生了什么。它相当容易使用,但请遵循以下说明:
http://www.wireshark.org/ Wireshark 是一款适用于 Unix 和 Windows 的网络协议分析器。到目前为止,我只是粗略地了解了这个工具,但在对您的计算机与网络上其他计算机之间的请求进行分析时,它会派上用场。
开始之前 - Wireshark 会捕获每个请求,因此仅在准备好捕获时单击“开始”,并在完成后单击“停止”。- 您需要您的 IP 地址
了解有关分析 HTTP 请求的更多信息
| 归档时间: |
|
| 查看次数: |
14471 次 |
| 最近记录: |