Kann ich die neue URL programmgesteuert abrufen, wenn eine Antwort auf $ .ajax 301 lautet?

Gibt es eine Möglichkeit, die URL abzurufen, zu der Sie letztendlich umgeleitet werden, wenn die Antwort auf eine xhr-Anfrage 301 lautet?

Ich habe eine Website, die zahlreiche ältere URLs aus einer älteren Version enthält, die 301 Antworten auf die richtige neue URL zurückgeben.

Für Hilfsprogramme möchte ich in der Lage sein, eine Anfrage an eine alte URL zu richten und die neue abzurufen, dh eine Anfrage an "/oldpage.aspx?foo=someParam" zu senden, und die neue URL "/ arbitaryNewPageName" zurückzubekommen / someParam ".

Ich habe damit in der Firebug-Konsole herumgespielt:

<code>    $.ajax({
            url: "/oldpage.aspx?foo=someParam", 
            success: function(response, status, jqxhr){
            //poking around, trying to get the new URL, "/arbitraryNewPage/someParam"
                console.log(jqxhr.getAllResponseHeaders());
                console.log(jqxhr);
            },
            beforeSend: function(jqxhr, settings){
                console.log(jqxhr);
                console.log(settings);
            }
        });
</code>

Ich kann in firebug sehen, dass, wenn dieser Code ausgeführt wird, es ein GET zu "/oldpage.aspx?foo=someParam" ausführt und eine Antwort 301 erhält, dann ein anderes GET zu "/ arbitaryNewPageName / someParam".

Bei der ersten Anforderung wird die umgeleitete URL im Location-Wert des Antwortheaders angezeigt. Leider ist die zweite Anforderung das, was an die Funktion $ .ajax.success übergeben wird, und sie enthält nur die umgeleitete URL im Referrer-Wert des Anforderungsheaders.

Gibt es vielleicht eine Möglichkeit, die Antwort auf die erste Antwort abzufangen oder die Anforderungsheader für die zweite Anforderung anzuzeigen?

Bearbeiten: Vielen Dank an alle für die Antworten. Ich denke, ich muss ein wenig Hintergrundwissen geben, um zu klären, wonach ich genau suche.

Ein Geschäftsbenutzer hat mich gebeten, eine Liste zu erstellen, die ältere URLs mit neuen URLs verknüpft. Da ich bereits eine Möglichkeit zum Umleiten von Legacy-URLs zu neuen URLs auf dem Server implementiert habe, wollte ich diese Arbeit unterbrechen und ein Skript erstellen, mit dem Anforderungen an die Legacy-URLs gesendet und die URLs abgerufen werden, an die die Anforderungen umgeleitet wurden. Etwas wie das:

<code>for (var i = 0; i < arrayOfLegacyUrls.length; i++)
{
    $.ajax({
            url: arrayOfLegacyUrls[i], 
            success: function(response, status, jqxhr){
                var newUrl = "???"; //do magic to get URL that request was redirected to

                writeToFileForBusinessUser(arrayOfLegacyUrls[i], newUrl);
            }
        });
}
</code>

Der Kern meiner Frage ist folgender:Kann ich die URL erhalten, zu der meine Anfrage vom XHR umgeleitet wurde? Bisher scheint die Antwort "nein" zu sein.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage