Acho sua pergunta interessante, mas o problema como um todo me parece mais um mal-entendido. Ao menos tentarei explicar meu entendimento do problema.
O redirecionamento silencioso (transparente) é parte da XMLHttpRequest
especificação (veja aqui especialmente as palavras "... transparentemente siga o redirecionamento ..."). A menção padrão apenas que o agente de usuário (o navegador) pode prevenir ou notificar de certos tipos de redirecionamentos automáticos, mas não é uma parte XMLHttpRequest
. É a parte da configuração do cliente HTTP (configuração do sistema operacional) ou a configuração do navegador da web. Portanto, jQuery.ajax
não pode haver nenhuma opção onde você possa evitar o redirecionamento.
Você pode ver que o redirecionamento HTTP é parte do protocolo HTTP e não parte dele XMLHttpRequest
. Portanto, está em outro nível de abstração ou na pilha da rede. Por exemplo, os dados do XMLHttpRequest
podem ser recuperados do proxy HTTP ou do cache do navegador local e fazem parte do protocolo HTTP. Principalmente o servidor que fornece os dados e não o cliente pode influenciar no armazenamento em cache.
Você pode comparar o requisito de sua pergunta com o requisito para evitar a alteração do endereço IP do servidor da web ou a alteração da rota IP durante a comunicação. Todas as coisas podem ser interessantes em alguns cenários, mas há partes de outro nível da pilha de comunicação e não podem ser gerenciadas por jQuery.ajax
ou XMLHttpRequest
.
O XMLHttpRequest
padrão diz que a configuração do cliente pode ter opções que evitam o redirecionamento. No caso do "mundo da Microsoft", que eu conheço melhor, você pode olhar a função WinHttpSetOption que pode ser usada para definir a WINHTTP_OPTION_DISABLE_FEATURE
opção com o WINHTTP_DISABLE_REDIRECTS
valor. Outra forma é o uso da WINHTTP_OPTION_REDIRECT_POLICY
opção com o WINHTTP_OPTION_REDIRECT_POLICY_NEVER
valor. Mais um recurso que pode ser usado no Windows é a função WinHttpSetStatusCallback , que pode definir a função de retorno de chamada recebida como algumas notificações WINHTTP_CALLBACK_FLAG_REDIRECT
.
Portanto, é possível implementar seus requisitos em geral, mas a solução provavelmente não será independente do sistema operacional ou do navegador da Web e não estará no nível de jQuery.ajax
ou XMLHttpRequest
.