Je trouve votre question intéressante, mais le problème dans son ensemble me semble plus être un malentendu. Au moins je vais essayer d'expliquer ma compréhension du problème.
La redirection silencieuse (transparente) fait partie de la spécification XMLHttpRequest
(voir ici notamment les mots "... suivre la redirection de manière transparente ..."). La norme mentionne seulement que l'agent utilisateur (le navigateur web) peut empêcher ou notifier de certains types de redirections automatiques, mais ce n'est pas une partie de XMLHttpRequest
. C'est une partie de la configuration du client HTTP (configuration du système d'exploitation) ou la configuration du navigateur web. Donc jQuery.ajax
ne peut pas avoir d'option où vous pouvez empêcher la redirection.
Vous pouvez voir que la redirection HTTP fait partie du protocole HTTP et non pas de XMLHttpRequest
. C'est à un autre niveau d'abstraction ou de la pile réseau. Par exemple les données de XMLHttpRequest
peuvent être récupérées à partir du proxy HTTP ou du cache du navigateur local, et c'est une partie du protocole HTTP. Majoritairement le serveur qui fournit les données et non pas le client peut influencer le cache.
Vous pouvez comparer l'exigence de votre question avec l'exigence de prévenir le changement d'adresse IP du serveur web ou le changement de l'itinéraire IP pendant la communication. Toutes ces choses peuvent être intéressantes dans certains scénarios, mais elles font partie d'un autre niveau de la pile de communication et ne peuvent pas être gérées par jQuery.ajax
ou XMLHttpRequest
.
La norme XMLHttpRequest
indique que la configuration du client peut avoir des options qui empêchent les redirections. Dans le cas du "monde Microsoft", que je connais mieux, vous pouvez regarder la fonction WinHttpSetOption qui peut être utilisée pour définir l'option WINHTTP_OPTION_DISABLE_FEATURE
avec la valeur WINHTTP_DISABLE_REDIRECTS
. Une autre façon est d'utiliser l'option WINHTTP_OPTION_REDIRECT_POLICY
avec la valeur WINHTTP_OPTION_REDIRECT_POLICY_NEVER
. Une autre fonctionnalité que l'on peut utiliser dans Windows est la fonction WinHttpSetStatusCallback qui peut définir une fonction de rappel pour recevoir des notifications comme WINHTTP_CALLBACK_FLAG_REDIRECT
.
Il est donc possible de mettre en œuvre 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 se fera pas au niveau de jQuery.ajax
ou XMLHttpRequest
.
0 votes
Cela pourrait aider : stackoverflow.com/questions/1804928/gérer-la-redirection-ajax-jquery
9 votes
Il est étrange que votre backend rapporte un 302 pour un non trouvé, au lieu d'un 404.
1 votes
Possible duplicate de Empêcher la redirection de Xmlhttprequest