一尘不染

确定什么jQuery .ajax()解析重定向到的字符串

ajax

我知道重定向是自动执行的,并且我对该流程几乎没有控制。很好,但是我仍然对我的请求最终在哪里感兴趣。是否有可能看到我的请求最终到达的URL?

希望靠返回的HTML本身告诉我,我在哪里。

样例代码:

var originalURL = '/this/will/be/redirected';
$.ajax({
    url: originalURL,
    dataType: "html",
    success: function(data, statusText, jqXHR) {
        var endPointURL = insertMagicHere();
        alert("Our query to " + original + " ended up at " + endPointURL + "!");
    }
});

我正在jqXHR中寻找它,但是到目前为止还没有运气。(尽管如此,我是新手,可能就在我的鼻子下面)


阅读 218

收藏
2020-07-26

共1个答案

一尘不染

据我所知(并拥有睾丸),唯一可能的方法是检测IF是否存在重定向以及进行了多少重定向(而不是TO到哪里)。

您可以看一下我的代码:

var xhr = $.ajax({
  url: originalURL,
  dataType: "html",
  success: function(data, statusText, jqXHR) {
    console.log(data);
    console.log(statusText);
    console.log(jqXHR.getAllResponseHeaders());
  }
});

jqXHR.getAllResponseHeaders()我的开发机上的输出是这样的:

Date: Fri, 05 Aug 2011 01:29:20 GMT
Server: ...
X-Powered-By: ... 
Content-Length: 5 
Keep-Alive: timeout=15, max=98 
Connection: Keep-Alive 
Content-Type: text/html

Keep-Alive: timeout=15, max=98值得在有更深入的了解。max=99一会儿没有重定向,一会儿出现max=98

2020-07-26