Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1858 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur AJAX/JS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur AJAX/JS

n°2220638
misterphil​2
Posté le 24-02-2014 à 18:58:16  profilanswer
 

Bonjour,
 
j'utilise souvent cette fonction AJAX pour ajouter le contenu d'une page dynamique dans un DIV :
 

Code :
  1. function modifier(url,id)
  2. {
  3. var xhr_object = null;
  4. var position = id;
  5. if(window.XMLHttpRequest) {
  6. xhr_object = new XMLHttpRequest();
  7. }
  8. else if (window.ActiveXObject)
  9. {
  10. xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  11. }
  12. xhr_object.open("GET", url, true);
  13. xhr_object.onreadystatechange = function(){
  14. if ( xhr_object.readyState == 4 )
  15. {
  16. document.getElementById(position).innerHTML = xhr_object.responseText;
  17. }
  18. }
  19. xhr_object.send(null);
  20. }


 
or, lors d'une énième utilisation sur un nouveau site, sous IE uniquement, je tombe sur un bug avec le message "Erreur d'exécution inconnue" et la section du DIV reste vide de tout nouveau contenu.
 
C'est curieux car le contenu a l'air de parvenir au moins jusqu'à l'objet, on le voit grâce à ce code joint qui affiche bien le contenu HTML concerné dans une popup :
 

Code :
  1. alert(xhr_object.responseText);
  2. // positionné avant document.getElementById(position).innerHTML = xhr_object.responseText;


 
De même que ce code affiche bien du code HTML sous IE :
 
document.getElementById(position).innerHTML = "<strong>message test en gras</strong>";
 
Donc de quoi cela pourrait-il venir ?
 
Merci

mood
Publicité
Posté le 24-02-2014 à 18:58:16  profilanswer
 

n°2220755
olivthill
Posté le 25-02-2014 à 16:48:47  profilanswer
 

Deux choses :
 
1. Si c'est une ancienne version de IE, alors il manque :
 
xhr_object = new ActiveXObject("Msxml2.XMLHTTP" );
 
On peut la mettre  grâce à des try :

   try{xhr_object = new XMLHttpRequest();}
   catch(e) {
      try{xhr_object = new ActiveXObject("Msxml2.XMLHTTP" );}
      catch(e) {
         try{xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );}
         catch(e) {
            alert("Your browser does not support AJAX!" );
            return false;
         }
      }
   }


 
2. La ligne du send devrait être placée avant la ligne du onreadystatechange , comme ceci :

xhr_object.open("GET", url, true);
xhr_object.send(null);
xhr_object.onreadystatechange = function() {
   if (xhr_object.readyState == 4) {
      document.getElementById(position).innerHTML = xhr_object.responseText;
   }
}

n°2220774
misterphil​2
Posté le 25-02-2014 à 18:34:23  profilanswer
 

Bonjour,
 
Merci Olivthill pour tes indications, mais :
1. C'est la version 8 d'IE, donc ça me semble assez récent.
2. J'ai déplacé la ligne, mais ça ne donne rien, même résultat positif sous FF, même résultat négatif sous IE.
 
Le code utilisé initialement marchait bien pour d'autres sites fait-maison quel que soit le navigateur. Dans le cas présent, est-ce que le problème pourrait être dû à un conflit lié à Wordpress ou à un plugin ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Erreur AJAX/JS

 

Sujets relatifs
PYTHON Concaténation URL entraine erreur 400Test présence JS
JS:étrange résultats regex pour traiter les erreursinjection dans fichier .JS
Erreur codeblocks lors de la compilation"Do you want to build it now?"javascript : window.onerror lire le code jetant une erreur
Erreur 403erreur Impossible d'obtenir la propriété 0 d'une réference null ou non
parse erreurVBA : erreur d'exécution 13
Plus de sujets relatifs à : Erreur AJAX/JS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR