Christophe Nowicki

January 19, 2006

XMLHttpRequest.status != 302

Je viens de découvrir une nouvelle limitation de l’objet XMLHttpRequest utilisé par la méthodologie Ajax.
Celui-ci ne supporte pas les rédirections HTTP envoyées par un serveur web.

Effectivement, un serveur web peut indiquer au client, via l’envoi d’une réponse de type 300 que le document demandé ne se trouve pas à la page indiquée.

L’objet XMLHttpRequest suit automatiquement les redirections sans vous en informer.

De ce fait, il n’est pas possible d’informer le client d’une redirection envoyée par le serveur.

Nous avons experimenté ce comportement avec tous les navigateurs du marché.

Mes recherches sur ce sujet le confirment :
http://www.codecomments.com/archive361-2005-3-412946.html

Il existe une solution, non portable qui conssiste à utiliser l’objet WinHttpRequest

Celui-ci propose de nombreuses méthodes supplémentaires, dont notamment la désactivation du suivi des rédirections automatiques : WinHttpRequestOption

Mais il n’est disponible que sous Microsoft Windows …

Il faut noter, que le suivi automatique des rédirections est une faille de securité, car lorsque les redirections bouclent, le navigateur du client plante.

C’est notamment le cas de Mozilla Firefox, qui est pourtant capable de détecter les boucles de redirection classique.

Filed under: Programming — Tags:, — cscm @ 08:25

Powered by WordPress