2010-01-28 18 views
3

Un serveur Web renvoie un code d'état et une description en réponse à une demande d'un composant XmlHttp. La réponse de l'état réel du serveur commence par:XmlHttp: Comment obtenir le statusText actuel à partir d'un objet msxml.xmlhttp?

HTTP/1.1 400 Not a valid http POST request 

que je peux voir dans bien une trace Fiddler:

alt text http://i49.tinypic.com/3325474.jpg

Mais quand je demande à la demande xmlHttp pour la status et statusText, il me montre la description "standard" pour le texte d'état, plutôt que le texte d'état réel:

xmlHttp.status: 200 
xmlHttp.statusText: "Bad Request" 

que je peux voir dans l'EDI de développement:

alt text http://i50.tinypic.com/28lghvq.jpg

je l'ai poussé autour de toutes les autres propriétés de IXMLHttpRequest, et je ne peux pas trouver qui contiennent réelle de la réponse texte d'état. Il est même pas dans l'un des response headers:

Server: ASP.NET Development Server/8.0.0.0 
Date: Thu, 28 Jan 2010 21:03:16 GMT 
X-AspNet-Version: 2.0.50727 
X-LSI-Proxy-Identificaton: {65B76AB2-8A28-4A2B-B282-7E1FDC9DBCA1} 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: text/xml; charset=utf-8 
Content-Length: 4652 
Connection: Close 

Internet Explorer, Chrome et FireFox réussi à lire le texte de statut actuel:

alt text http://i46.tinypic.com/azfc6b.jpg

Comment puis-je obtenir la réelle statusText de un objet Microsoft xmlHttp?

Répondre

2

Malheureusement le code 400 est défini comme une demande incorrecte dans le cadre de la RFC HTTP/1.1 et XMLHTTP (bien plus probable URLMON ou WinHTTP) transforme juste le nombre et ignore le texte de statut passé. Comme la ligne d'état fait partie du protocole et non d'un en-tête de réponse, il est logique qu'elle ne soit pas définie dans la liste des en-têtes de réponse.

Cependant, je soutiens que les navigateurs affichent seulement le texte d'état "correctement" parce qu'ils affichent la page HTML personnalisée qui a été envoyée avec elle qui a ce texte comme TITLE dans l'élément HEAD.

+0

On dirait que vous avez raison sur les deux points. (1) xmlhttp utilise les descriptions d'état par défaut, plutôt que celles qui sont retournées, et (2) le titre contient le titre html, pas le code d'état http et statusText. –