2010-05-17 3 views
2
function addRequest(req) { 
try { 
    request = new XMLHttpRequest(); 
} catch (e) { 
    try{ 
     request = new ActiveXObject("Msxml2.XMLHTTP"); 
    }catch(e){   
     try { 
      request = new ActiveXObject("Microsoft.XMLHttp"); 
     } catch (e) { 
      alert("XMLHttpRequest error: " + e); 
     } 
    } 
} 
request.open("GET", req, true); 
request.send(null); 
return request; 

}erreur XMLHttpRequest dans IE, fonctionne sans problème dans Chrome/FF

Comme vous pouvez le voir, il échoue IE apparemment les 3 façons dont j'essaie de faire la demande. J'ai fait beaucoup de recherches pour essayer de trouver ce qui pourrait être le problème, mais de toute façon, le code publié ci-dessus devrait fonctionner.

Je n'ai pas utilisé jquery pour AJAX, mais je l'ai vu recommandé quand d'autres ont eu des problèmes avec les objets httprequest. pourrais-je juste remplacer le désordre ci-dessus avec quelques lignes de jquery et supposer qu'il prendra soin de la laideur d'IE?

Merci!

+0

Par curiosité, ajoute "var request = null;" avant la première déclaration d'essai de réparer les choses pour vous? –

Répondre

5

i havent jquery utilisé pour AJAX, mais ive vu il recommandé quand d'autres ont eu des problèmes avec des objets HttpRequest. puis-je simplement remplacer le désordre ci-dessus avec quelques lignes de jquery et supposer qu'il prendra soin de la laideur IE?

Réponse courte: oui.

Bien que la syntaxe de jquery fasse les choses différemment, vous ne créerez pas explicitement de requête et ne l'enverrez pas. Tout est enveloppé dans une fonction. Par exemple. de http://api.jquery.com/jQuery.get/

$.get("test.cgi", { name: "John", time: "2pm" }, 
    function(data){ 
    alert("Data Loaded: " + data); 
    }); 

Vous pouvez oublier les problèmes d'interopérabilité du navigateur. Tant que vous restez à jour avec jquery versions :) love it

+0

comment rendre javascript pur? Le problème n'est pas seulement un jquery l'autre application – KingRider

1

Différentes versions de IE ont différentes manières de faire référence à l'objet XMLHTTP.

Cela concerne les bibliothèques MSXML installées sur votre machine. Quelle version OS/IE exécutez-vous?

Essayez d'exécuter Windows Update. Une solution étrange, mais qui peut fonctionner ici.

+0

Je cours Windows 7 avec IE8. Je suis en train d'exécuter Windows Update, mais je l'ai juste essayé sur une autre boîte avec Vista/IE7 et il a échoué là aussi. heres un lien vers mon site: http://la.truxmap.com/request?id=boolbbq pour le tester par vous-même, soit entrer une nouvelle adresse et cliquez sur soumettre ou cliquez sur l'étoile. Merci pour votre aide Moshe! –

+0

Je suis sur Mac en ce moment, je ne peux pas le tester! Heureux de voir que vous avez réglé les choses cependant. En passant, je suis curieux de voir si Windows Update a aidé. Il se peut que Windows Update installe un analyseur XML * trop récent * par rapport à votre coda et donc appelé par un nom non référencé dans les didacticiels actuellement disponibles en ligne. – Moshe