Que se passe-t-il si le navigateur reçoit une réponse de redirection à une requête ajax ?
Si le serveur envoie une redirection (c'est-à-dire une réponse 302 plus un en-tête Location :), la redirection est automatiquement suivie par le navigateur. La réponse à l'en-tête deuxième (en supposant qu'il ne s'agit pas non plus d'une autre redirection) est ce qui est exposé à votre programme.
En fait, vous n'avez pas la possibilité de détecter si une réponse 302 a eu lieu. Si la redirection 302 mène à un 200, alors votre programme agit de la même manière que si la requête originale menait directement à un 200.
C'est à la fois mon expérience et la comportement indiqué dans la spécification .
Mise à jour de 2016 : Le temps a passé, et la bonne nouvelle est que la nouvelle API fetch() est conçu pour offrir un contrôle plus fin de la façon dont les redirections sont gérées avec un comportement par défaut similaire à celui de XHR. Cela dit, il ne fonctionne que si fetch() est implémenté. nativement . Versions polyfill de fetch() -qui sont basés sur XHR- continuer à avoir les limites de XHR . Heureusement, support de navigateur natif semble s'arrondir gentiment.
0 votes
Liés : stackoverflow.com/q/8905545/248058