Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Ajax pose problème


Invité jlemonde

Messages recommandés

Invité jlemonde

Salut,

J'ai un problème bizarre: j'ai un code qui marche prèsque correctement, mais lorsque j'appelle la fonction AJAX('file.txt'), une erreur surgit :

Uncaught Error: INVALID_STATE_ERR: DOM Exception 11

 

Pourtant le fichier file.txt est correctement retourné !

 

Voici mon code :

   function getXMLHttpRequest(){
     var xhr = null;

     if(window.XMLHttpRequest || window.ActiveXObject){
        if(window.ActiveXObject){
           try{
              xhr = new ActiveXObject('Msxml2.XMLHTTP');
           }
           catch(e){
              xhr = new ActiveXObject('Microsoft.XMLHTTP');
           }
        }
        else{
           xhr = new XMLHttpRequest();
        }
     }
     else{
        alert('Votre navigateur ne supporte pas l\'objet XMLHttpRequest...');
        return null;
     }
     return xhr;
  }

  var AJAXMemory;
  function AJAX(file,callBack){
     var xhr = getXMLHttpRequest();
     xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
           AJAXMemory = xhr.responseText;
           eval(callBack);
        }
        else{
           AJAXMemory = 'Erreur ' + xhr.status;
        }
     }
     xhr.open('GET', file, false);
     xhr.send(null);
     return AJAXMemory;
  }

// UTILISATION : mondiv.innerHTML = AJAX("fichier.txt","alert('callBack')");

 

Vous arrivez à m'expliquer pourquoi cette erreur vient me perturber, et ce qu'il me faut changer dans mon code ?

Merci d'avance...

 

Configuration: Windows 7 / Chrome 16.0.912.63

Lien vers le commentaire
Partager sur d’autres sites

Bonjour jlemonde,

 

Je pense que ton problème vient que ton script appelle la propriété 'status' de l'objet XMLHttpRequest alors que la requête n'est pas terminée (Je n'ai pas vérifié par un test)

if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
.....
}
else{
    AJAXMemory = 'Erreur ' + xhr.status; (<= ici pour les valeurs de readyState <> 4 )
}

 

Voir détail :blog pascal martin

 

A+

Modifié par Jocko
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...