J'ai une fonction permettant de créer un objet XMLHttpRequest, mais le problème, c'est qu'elle ne fonctionne pas sous IE. Par contre, elle fonctionne sous Firefox, Opera... . Je vous montre la fonction :
var xhr = null;
function getXhr(){ if(window.XMLHttpRequest){// Firefox et autres
xhr = new XMLHttpRequest(); } elseif(window.ActiveXObject){// Internet Explorer try{
xhr = new ActiveXObject("Msxml2Microsoft.XMLHTTP"); } catch(e){ try{
xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch(ee){
xhr = false; } } } else{// XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false; } }
Normalement, elle devrait m'afficher un message disant que ça ne fonctionne pas, mais elle essai de créer l'objet qui ne donne aucun résultat lorsque je l'utilise et qui me déclare une erreur sous IE.
J'ai quand même une méthode alternative qui fonctionne si aucun objet n'est créé (et qui prend la relève dans ce cas-ci), mais comme je sais que IE sait parfaitement comment faire (c'est quand même microsoft qui a mis au point cette technique), j'aimerais trouver une solution.
J'espère avoir été assez clair (même si j'en doute).
Hmm, ta fonction je l'ai testée elle marche Oo
Mais dans le cas où elle ne réussirait pas à créer XMLHttpRequest sur ie, ça ne va pas mettre de message d'erreur:
function getXhr(){ var xhr = null; if(window.XMLHttpRequest){// Firefox et autres
xhr = new XMLHttpRequest(); } elseif(window.ActiveXObject){// Internet Explorer try{
xhr = new ActiveXObject("Msxml2Microsoft.XMLHTTP"); } catch(e){ try{
xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch(ee){
xhr = false; } } } if( !xhr) {// XMLHttpRequest non supporté par le navigateur throw"Votre navigateur ne supporte pas les objets XMLHTTPRequest..."; } return xhr; }
J'ai modifié trois choses:
-J'ai mis la déclaration de la variable xhr à l'intérieur de la fonction, ce qui fait que ce n'est plus une variable globale, c'est plus pratique quand tu as besoin d'utiliser plusieurs objet XMLHttpRequest à la fois.
Vu que la variable n'est plus globale, il faut aussi rajouter return xhr;
-J'ai remplacé else { // XMLHttpRequest non supporté par le navigateur
Par if( !xhr) ce qui permet de vérifier que xhr a bien été créé.
-J'ai remplacé aussi la fonction alert() par une commande throw (les exceptions sont visibles dans la console du navigateur), quand tu as une page web qui fait 1 requêtes ajax toute les secondes, l'erreur qui apparait dans un alert() c'est pas agréable (en général, faut faire ctrl + alt + suppr pour killer le browser ).
Merci de tes conseils Je les ai mit en oeuvre.
Malheureusement, le problème ne venait pas de là... J'avais simplement un ./ au début du lien demandé par GET :s Décidemment, IE m'impressionnera toujours à pointiller sur certains détails qui devraient néanmoins fonctionner...
Merci
XMLHttpRequest sous IE
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.