如何使用$ .get()检测服务器重定向

Sim*_*ger 9 javascript url jquery redirect

没有重复的问题

这个问题与上面提到的问题不重复,因为我无法控制服务器响应,因为上述其他两个问题就是这种情况.


我用来$.get将外部文档的内容加载到当前网站.

但是,我需要此外部文档的最终URL.在原始URL被重定向(302)到不同URL的情况下,我需要新的URL.

我可以使用jQuery $.get方法从加载的文档中获取最终的URL(在302重定向之后)吗?


更新

根据下面的反馈,我将我的代码更新为此,但我仍然没有得到最终的URL:

$.get(url, function(html, status, xhr){
    console.log(xhr.getResponseHeader('TM-finalURL')); // result: null
});
Run Code Online (Sandbox Code Playgroud)

记录所有响应标头xhr.getAllResponseHeaders()给我(对于具有302重定向的页面)以下结果:

Pragma: no-cache
Date: Fri, 28 Feb 2014 15:30:22 GMT
Server: Apache
X-Powered-By: PHP/5.3.28
Transfer-Encoding: chunked
Content-Type: text/html
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: Keep-Alive
Keep-Alive: timeout=15, max=100
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Run Code Online (Sandbox Code Playgroud)

但没有最终的URL.我在这里理解错了吗?

kri*_*isk 11

查看XHR 规范,您可以看到它不是灵活构建的.所有重定向都以透明方式处理:

如果响应的HTTP状态代码为301,302 ...透明地遵循重定向

使用中间状态代码在JavaScript中不会触发任何事件.只会通知JavaScript最终的HTTP状态和返回的数据,因为这应该是可用的:

收到所有HTTP标头后,将取消设置同步标志,并且响应的HTTP状态代码不是 301,302,303,307和308之一