[JavaScript] XMLHttpRequest et Internet Explorer

XMLHttpRequest et Internet Explorer [JavaScript] - HTML/CSS - Programmation

Marsh Posté le 06-02-2008 à 13:59:22    

Hello !
 
Voilà, j'ai un soucis d'exécution d'un script qui fonctionne très bien sous Firefox mais pas sous IE, l'erreur retournée par IE est "cette objet ne gère pas cette propriété ou cette méthode).
 
Voici la fonction en question (toute commentée!), l'appelle de la fonction chargement ligne 31 ici ne fonctionne pas.
 
Quelqu'un à une idée ?
 

Code :
  1. function chargementXML()
  2. {
  3. if (window.XMLHttpRequest)
  4. {
  5.  // pour firefox, opera, safari
  6.  connexion = new XMLHttpRequest();
  7.  // création de l'objet gérant la connexion avec le serveur
  8.  if (window.ActiveXObject)
  9.  {
  10.   try {  // Pour internet explorer
  11.    connexion = new ActiveXObject("Msxml2.XMLHTTP" );
  12.   }
  13.   catch (e) {  // Pour une autre version d'internet explorer
  14.    try {
  15.     connexion = new ActiveXObject("Microsoft.XMLHTTP" );
  16.    }
  17.    catch (e) {
  18.     alert('Votre navigateur ne prend pas en charge l\'objet XMLHTTPRequest.');
  19.    }
  20.   }
  21.  }
  22.  if (connexion != 0)
  23.  {
  24.   connexion.onload = null;
  25.   connexion.open("GET", fichierXML, true);
  26.   /* préparation de la connexion
  27.   une requête HTTP de type GET va être envoyée au serveur
  28.   pour lui demander de nous renvoyer le document XML */
  29.   connexion.onreadystatechange = chargement;
  30.   // c'est la fonction javascript chargement() sera executée lors de la réception des données
  31.   connexion.send(null); // envoi de la requête
  32.  }
  33. }
  34. else alert('La connexion n\'a pu être initiée !');
  35. }


 
Je vous précise qu'avec IE 7 je rentre dans la ligne 16 : connexion = new ActiveXObject("Microsoft.XMLHTTP" );
Et impossible de rentrer dans le if (connexion != 0)
 
Merci !


Message édité par Fused le 06-02-2008 à 18:39:12
Reply

Marsh Posté le 06-02-2008 à 13:59:22   

Reply

Marsh Posté le 06-02-2008 à 15:10:07    

Heu, il ne manquerait pas un espace à la ligne 12 :

Code :
  1. connexion = new ActiveXObject("Msxml2.XMLHTTP" );


 
Au lieu de

Code :
  1. connexion = newActiveXObject("Msxml2.XMLHTTP" );


Reply

Marsh Posté le 06-02-2008 à 18:38:58    

En effet, c'était une erreur à la con mais ça n'a pas résolu le problème, ça m'agace, je fais tjs des erreurs comme ça !
 
Tout à l'heure en java, une demi heure à revoir les codes de plusieurs classe pour une erreur de point virgule.
 
Ici, la création de l'objet ne fonctionne pas apparemment... des idées ?

Reply

Marsh Posté le 06-02-2008 à 21:36:29    

Je trouve que ton code est compliqué, pour initialiser un object XMLHttpRequest. Je me contente en général de :
 
 

Code :
  1. if (window.XMLHttpRequest)
  2. {
  3.     request = new XMLHttpRequest()
  4. }
  5. else if (window.ActiveXObject) // IE/Windows ActiveX version
  6. {
  7.     request = new ActiveXObject("Microsoft.XMLHTTP" )
  8. }


 
Ça passe dans IE6+, Safari, Moz, ....

Reply

Marsh Posté le 07-02-2008 à 00:38:43    

C'est vrai que les exceptions c'est pas fait pour faire des if conditionnel. Le but des exceptions c'est d'éviter de faire crasher une appli à cause d'erreurs non prévues.

Reply

Marsh Posté le 07-02-2008 à 16:50:28    

Je crois que j'avais testé ça mais je vais réessayer au cas ou.

Reply

Marsh Posté le 07-02-2008 à 16:57:19    

Ça ne change rien :/ ne fonctionne toujours pas sous IE 7... d'autres idées ?


Message édité par Fused le 07-02-2008 à 16:57:28
Reply

Marsh Posté le 07-02-2008 à 17:39:19    

Dis voir, ta config de IE n'utiliserais pas des paramètres de sécurité renforcé, qui interdirait purement et simplement tous les activex (dont l'implémetation de XmlHttpRequest par Microsoft [loué soit leur sagesse !], en dépend).

Reply

Marsh Posté le 07-02-2008 à 18:31:50    

Non, j'ai même testé en modifiant les paramètres pour tout autoriser.
 
Si j'affiche l'objet "connexion" une fois créé sous IE7, ça m'affiche "[object]" et sous firefox ça m'affiche bien "[object XMLHttpRequest]"
 
Pourtant je rentre bien dans les instructions try catch mais on dirait que l'objet n'est pas créé sous IE.


Message édité par Fused le 07-02-2008 à 18:32:08
Reply

Sujets relatifs:

Leave a Replay

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