有没有办法知道返回的jqXHR对象是否从另一个请求重定向而来?例如,有以下代码:
jQuery.ajax({
type: 'POST',
url: 'http://example.com/page.html',
complete: function(response, status) {
console.log(response.statusCode);
// do something
}
});
如果ajax的url被重定向到301或302状态代码,则响应将是重定向页面的结果,并将返回200(OK)状态代码。我认为这是jQuery的一个漏洞(不确定这是否是预期的行为,因为最终响应实际上是成功的)。我也无法获取原始响应头来检查是否存在Location Header,因为这仅在重定向请求中可用。
使用上述代码的Firebug通过XHR记录这两个请求: http://example.com/page.html 302(暂时移动) http://example.com/redirect.html 200(OK)
但是jQuery只从第二个请求返回数据。也许有一种方法可以从第一个请求获取数据?或者获取响应URL并将其与原始请求的URL进行比较?