Je trouve votre question intéressante, mais le problème dans son ensemble me semble plutôt un malentendu. Au moins, je vais essayer d'expliquer ma compréhension du problème.
La redirection silencieuse (transparente) fait partie de la XMLHttpRequest
spécification (voir ici notamment les mots "... suivez la redirection de manière transparente ..."). La norme mentionne uniquement que l'agent utilisateur (le navigateur Web) peut empêcher ou notifier certains types de redirections automatiques, mais cela n'en fait pas partie XMLHttpRequest
. Cela fait partie de la configuration du client HTTP (configuration du système d'exploitation) ou de la configuration du navigateur Web. jQuery.ajax
Vous ne pouvez donc pas avoir d'option permettant d'empêcher la redirection.
Vous pouvez voir que la redirection HTTP fait partie du protocole HTTP et non de XMLHttpRequest
. C'est donc à un autre niveau d'abstraction ou de la pile réseau. Par exemple, les données du XMLHttpRequest
peuvent être récupérées à partir du proxy HTTP ou du cache du navigateur local, et cela fait partie du protocole HTTP. La plupart du temps, le serveur qui fournit les données et non le client peut influencer la mise en cache.
Vous pouvez comparer l'exigence de votre question avec l'exigence d'empêcher le changement d'adresse IP du serveur Web ou le changement de la route IP pendant la communication. Toutes les choses peuvent être intéressantes dans certains scénarios, mais il y a des parties d' un autre niveau de la pile de communication et ne peuvent pas être gérées par jQuery.ajax
ou XMLHttpRequest
.
La XMLHttpRequest
norme dit que la configuration du client peut avoir des options qui empêchent la redirection. Dans le cas du "monde Microsoft", que je connais mieux, vous pouvez consulter fonction WinHttpSetOption qui peut être utilisée pour définir l' WINHTTP_OPTION_DISABLE_FEATURE
option avec la WINHTTP_DISABLE_REDIRECTS
valeur. Une autre façon est l'utilisation de l' WINHTTP_OPTION_REDIRECT_POLICY
option avec la WINHTTP_OPTION_REDIRECT_POLICY_NEVER
valeur. Une autre fonctionnalité que l'on peut utiliser dans Windows est la fonction WinHttpSetStatusCallback qui peut définir la fonction de rappel reçu des notifications comme WINHTTP_CALLBACK_FLAG_REDIRECT
.
Il est donc possible d'implémenter vos exigences en général, mais la solution ne sera probablement pas indépendante du système d'exploitation ou du navigateur Web et ne sera pas au niveau de jQuery.ajax
ou XMLHttpRequest
.