Quando uma resposta a $ .ajax é 301, posso obter o novo URL programaticamente?

Existe uma maneira de obter o URL para o qual você é redirecionado quando a resposta a uma solicitação xhr é 301?

Eu tenho um site que contém vários URLs legados de uma versão mais antiga, que retornam 301 respostas para o novo URL correto.

Para fins de utilidade, eu gostaria de poder fazer um pedido para um URL antigo, e ser capaz de recuperar o novo, ou seja, enviar solicitação para "/oldpage.aspx?foo=someParam", recuperar o novo URL "/ arbitaryNewPageName / someParam ".

Eu tenho brincado com isso no console do 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>

Eu posso ver no firebug que quando este código é executado, ele faz um GET para "/oldpage.aspx?foo=someParam" e obtém uma resposta 301, em seguida, outro GET para "/ arbitaryNewPageName / someParam".

Para o primeiro pedido, vejo o URL redirecionado no valor de Localização do cabeçalho de resposta. Infelizmente, a segunda solicitação é o que é passado para a função $ .ajax.success e ela possui apenas a URL redirecionada no valor Referenciador do cabeçalho da solicitação.

Existe talvez uma maneira de interceptar a resposta à primeira resposta ou talvez ver os cabeçalhos da solicitação para a segunda solicitação?

Editar: Obrigado a todos pelas respostas. Acho que preciso dar um pouco de conhecimento para esclarecer exatamente o que estou procurando.

Um usuário empresarial me pediu para criar uma lista que associa URLs legados a novos URLs. Como já implementei um meio de redirecionar os URLs herdados para novos URLs no servidor, esperava recuperar esse trabalho e criar um script que fizesse solicitações aos URLs herdados e recebesse as URLs para as quais as solicitações foram redirecionadas. Algo assim:

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

O ponto crucial da minha pergunta é este:Posso obter o URL para o qual minha solicitação foi redirecionada do XHR? Até agora, a resposta parece ser "não".

questionAnswers(3)

yourAnswerToTheQuestion