Le serveur a bien envoyé une réponse.
Pour récupérer le contenu de cette réponse vous avez deux possibilités la propriété ajax
responseXML et la propriété ajax
responseText.
La propriété javascript responseXML récupère les contenus spécifiés XML.
Renvoie un objet
XMLDocument ou
null pour Netscape (Firefox, mozilla) quand le contenu renvoyé n'est pas xml. Internet Explorer renvoi un objet
XMLDocument vide (httpRequest.responseXML.childNodes.length=0).
Si votre contenu n'est pas un format XML valide, Internet Explorer renvoi un objet
XMLDocument vide et votre contenu est disponible dans le
responseText.
La propriété javascript responseText récupère les contenus non XML et donne une version texte de
XMLDocument si celui-ci n'est pas vide ou null.
Exemple de code :
httpRequest.onreadystatechange = function(){
httpRequest.readyState == 0) {
if (httpRequest.status == 200) {
alert(httpRequest.responseXML);
alert(httpRequest.responseText);
} else {
// il y a un problème avec la requête
}
}
} Comment s'avoir si c'est responseXML ou responseText que je dois utiliser ?Vous êtes sensé connaître le format (texte/xml) de la réponse du serveur, vous pouvez vous baser sur les en-têtes HTTP en utilisant la méthode
getResponseHeader().
Exemple de code :
if (httpRequest.status == 200) {
if(httpRequest.getResponseHeader("Content-Type") == "text/xml"){
alert(httpRequest.responseXML)
}else{
alert(httpRequest.responseText)
}
} Cependant le fait qu'Internet Explorer transfère le contenu XML dans
responseText quand ce dernier n'est pas valide pose des problèmes.
Après quelques recherches, je me suis appercu que beaucoup de script n'utilise que
responseText