Когда ответ на $ .ajax равен 301, могу ли я программно получить новый URL?

Есть ли способ получить URL, на который вы в конечном итоге будете перенаправлены, когда ответ на запрос xhr будет 301?

У меня есть сайт, который содержит многочисленные устаревшие URL из более старой версии, которые возвращают 301 ответ на правильный новый URL.

В служебных целях я хотел бы иметь возможность сделать запрос на старый URL-адрес и получить новый, т. Е. Отправить запрос по адресу /oldpage.aspx? Foo = someParam & quot ;, вернуть новый URL-адрес & quot; / arbitaryNewPageName / someParam & Quot ;.

Я играл с этим в консоли firebug:

<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>

Я вижу в firebug, что когда этот код запускается, он выполняет один GET для /oldpage.aspx? Foo = someParam & quot; и получает ответ 301, затем другой GET для &bitaryNewPageName / someParam & quot ;.

Для первого запроса я вижу перенаправленный URL-адрес в значении Location заголовка ответа. К сожалению, второй запрос передается функции $ .ajax.success, и он имеет только перенаправленный URL-адрес в значении Referrer заголовка запроса.

Возможно, есть способ перехватить ответ на первый ответ или, возможно, увидеть заголовки запроса для второго запроса?

Edit: Спасибо всем за ответы. Я думаю, что мне нужно немного рассказать о том, что именно я ищу.

Бизнес-пользователь попросил меня создать список, который связывает устаревшие URL-адреса с новыми URL-адресами. Поскольку я уже реализовал средство перенаправления устаревших URL-адресов на новые URL-адреса на сервере, я надеялся свести на нет эту работу и создать сценарий, который помещал бы запросы на устаревшие URL-адреса и получал URL-адреса, на которые были перенаправлены запросы. Что-то вроде этого:

<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>

Суть моего вопроса заключается в следующем:Can I get the URL my request was redirected to from the XHR? Пока что, похоже, ответ «нет».

Ответы на вопрос(3)

Ваш ответ на вопрос