Aller au contenu

Ajax sous IE7


Gab23

Sujets conseillés

Bonjour,

J'ai un code qui fait une requête Ajax de type POST sur une page et affiche le résultat. Le code fonctionne très bien sous Firefox, Opera, mais sous IE7, ça foire. Le message dans la boite des erreurs JS est "Erreur d'exécution inconnue", ce qui ne m'aide pas vraiment.

function moveMap(direction)
{
req = false;
// branch for native XMLHttpRequest object
if(window.XMLHttpRequest && !(window.ActiveXObject)) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}

if(req){
req.onreadystatechange = function()
{
if (req.readyState == 4) /* 4 : état "complete" */
{
if (req.status == 200) /* 200 : code HTTP pour OK */
{
// me renvoie le résultat
}
}
}
req.open("POST", "index.php", true);
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req.send("move=" + direction);
}
}

Apparemment, ce serait la ligne suivante qui causerait l'erreur en question :

req.onreadystatechange = function()

Quelqu'un peut m'éclairer ?

Lien vers le commentaire
Partager sur d’autres sites

Ton erreur semble due à une mauvaise initialisation de la variable req ; essaie de remplacer le code suivant :

if(window.XMLHttpRequest && !(window.ActiveXObject)) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
// branch for IE/Windows ActiveX version
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}

par :

		try {
req = new XMLHttpRequest();
} catch(e1) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e2) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e3) {
req = false;
}
}
}

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...