erreur responseXML ??

erreur responseXML ?? - HTML/CSS - Programmation

Marsh Posté le 11-08-2010 à 10:25:03    

Bonjour,
 
J'ai une application Php/MySQL qui comprend une page ou s'affiche une arborescence de Villes en JavaScript.
 
Cette arborescence fonctionne très bien chez les clients sauf chez un.
Une erreur apparait:
 
bad server response : typeError: xmlhttp.responseXML is null
 
 
cette erreur provient surrement de cet endroit dans mon code:

Code :
  1. //send request
  2. var xmlhttp = DBTreeView.getHTTPObject();
  3. xmlhttp.onreadystatechange = function (){
  4.  if(xmlhttp.readyState == 4){
  5.       if(xmlhttp.status!=200){
  6.        alert("Problem retrieving XML data" );
  7.       }
  8.   try{
  9.   //alert("Server response: "+xmlhttp.responseText);
  10.   var responseElem = xmlhttp.responseXML.documentElement;
  11.   var response = DBTreeView.XMLChildrenResponse.getInstance(responseElem);
  12.   callback(response);
  13.   }catch(e){
  14.    var text = xmlhttp.responseText;
  15.    alert("Error:\n bad server response: "+e+"\nData:"+text);
  16.          }
  17.  }
  18. }


 
Cette application est installé sur d'autres serveur et fonctionne parfaitement bien... Pour quelles raison cela pourrait-il bloquer?
 
merci de votre aide

Reply

Marsh Posté le 11-08-2010 à 10:25:03   

Reply

Marsh Posté le 14-08-2010 à 01:55:39    

Pourquoi tout coder à la main quand on peut faire simple ?
Utilise une bibli comme jquery pour faire de l'ajax :p
 
Ton erreur est déclarée sur quelle ligne ?

Reply

Marsh Posté le 16-08-2010 à 09:38:34    

roustif a écrit :

Bonjour,
 
J'ai une application Php/MySQL qui comprend une page ou s'affiche une arborescence de Villes en JavaScript.
 
Cette arborescence fonctionne très bien chez les clients sauf chez un.
Une erreur apparait:
 
bad server response : typeError: xmlhttp.responseXML is null
 
 
cette erreur provient surrement de cet endroit dans mon code:

Code :
  1. //send request
  2. var xmlhttp = DBTreeView.getHTTPObject();
  3. xmlhttp.onreadystatechange = function (){
  4.  if(xmlhttp.readyState == 4){
  5.       if(xmlhttp.status!=200){
  6.        alert("Problem retrieving XML data" );
  7.       }
  8.   try{
  9.   //alert("Server response: "+xmlhttp.responseText);
  10.   var responseElem = xmlhttp.responseXML.documentElement;
  11.   var response = DBTreeView.XMLChildrenResponse.getInstance(responseElem);
  12.   callback(response);
  13.   }catch(e){
  14.    var text = xmlhttp.responseText;
  15.    alert("Error:\n bad server response: "+e+"\nData:"+text);
  16.          }
  17.  }
  18. }


 
Cette application est installé sur d'autres serveur et fonctionne parfaitement bien... Pour quelles raison cela pourrait-il bloquer?
 
merci de votre aide


 
C'est peut-être l'objet xmlhttp qui est vide.
Il faudrait faire un test (xmlhttp != null) avant de récupérer la réponse :

Code :
  1. var xmlhttp = DBTreeView.getHTTPObject();
  2.     if (xmlhttp != null)
  3.     {
  4.         xmlhttp.onreadystatechange = function (){
  5.             if(xmlhttp.readyState == 4){
  6.                 if(xmlhttp.status!=200){
  7.                     alert("Problem retrieving XML data" );
  8.                 }
  9.             }
  10.         }
  11.         var responseElem = xmlhttp.responseXML.documentElement;
  12.         var response = DBTreeView.XMLChildrenResponse.getInstance(responseElem);
  13.         callback(response);
  14.     }
  15.     else
  16.         alert("Votre navigateur ne gère pas l'objet XMLHTTPRequest" );


 
Cela dit à moins d'avoir un navigateur spécifique, XMLHTTPRequest utilisé pour l'AJAX est géré par les navigateurs courants.
Sinon +1 pour Pascal le nain, à moins d'avoir des pré-requis spécifiques (pas de libs externes ...).
 
edit1 : mise en forme
edit2 : je serais d'avis à déplacer le code sur responseElem, response dans le else de (xmlhttp.status != 200) aussi, car à priori ces données ne devraient pas exister en cas d'échec de la requête à moins qu'elles soient toujours remplies quelquesoit le retour de la requête Ajax.


Message édité par FranceDenBas le 16-08-2010 à 09:54:34

---------------
"Il a inventé le bougisme : je bouge donc je suis" :sol: - Dupont-Aignan à propos de Son Altesse Sérénissime Sarkal 1er. Merci Handsome Devil et Meriadeck.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed