IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] erreur "non spécifiée" sur IE en AJAX


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 23
    Points : 12
    Points
    12
    Par défaut [AJAX] erreur "non spécifiée" sur IE en AJAX
    Hello j'ai un souci avec IE avec de l'ajax:
    dans un fichier Index.htm je fais àppelle à un doc php > affiche.php qui me renvoie des données sous forme txt.
    je les fais apparaitre dans la page grace à GetElementById mais la n'est pas le problème.
    Tout fonctionne parfaitement sauf qu'Internet Explorer me trouve une erreur de type "non spécifiée" et je seche pour trouver le problème
    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <html>
    <head>
    <title>ajax</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script>
    function affiche(Element,Valeur){
    	if (document.getElementById) document.getElementById(Element).innerHTML =Valeur;
    	else if (document.all)	document.all[Element].innerHTML =Valeur;
     
    }
     
    function Test_Pseudo()
    {
        var xhr=null;
     
        if (window.XMLHttpRequest) xhr = new XMLHttpRequest(); // Mozilla, Safari,...
    	else if (window.ActiveXObject) xhr = new ActiveXObject("Msxml2.XMLHTTP"); // Start IE
    	if (!xhr) { alert('Cannot create XMLHTTP instance'); return false; }
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { alert_ajax(xhr); };
    	affiche("affiche","attente..."); 
        //on affiche le message d'acceuil
     
        //on appelle le fichier reponse.txt
       xhr.open('GET', 'affiche.php', true);
       xhr.send(null);
     
    }
     
    	function alert_ajax(xhr){
    		if (xhr.status != 200) affiche("affiche","ERREUR DE SERVEUR"); 
    		if ((xhr.readyState==0)&&(xhr.status == 200)) affiche("affiche","pas assigné");
    		if ((xhr.readyState==1)&&(xhr.status == 200)) affiche("etat","en chargement..."); 
    		if ((xhr.readyState==2)&&(xhr.status == 200)) affiche("etat","chargée..."); 
    		if ((xhr.readyState==3)&&(xhr.status == 200)) affiche("etat","en cours de traitement..."); 
    		if ((xhr.readyState==4)&&(xhr.status == 200)) {
    				var docTXT= xhr.responseText;
    				affiche("etat","terminé");
    				affiche("affiche",docTXT)
    			}
    }
     
    </script>
    </head>
     
    <body>
    <p>
    <a href="javascript:Test_Pseudo();">Cliquez-moi toujours !</a>
    </p>
    <div id="etat"></div>
    <div id="affiche"></div>
    </body>
    </html>
    visiblement c'est la que ca génère l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (xhr.status != 200) affiche("affiche","ERREUR DE SERVEUR"); 
     
    if ((xhr.readyState==0)&&(xhr.status == 200)) affiche("affiche","pas assigné");
     
    if ((xhr.readyState==1)&&(xhr.status == 200)) affiche("etat","en chargement..."); 
     
    if ((xhr.readyState==2)&&(xhr.status == 200)) affiche("etat","chargée..."); 
     
    if ((xhr.readyState==3)&&(xhr.status == 200)) affiche("etat","en cours de traitement...");


    si je vire tout ca, plus d'erreur
    mais j'aimerai quand meme surveillé le déroulement du script.

    ou donc ai je commis une erreur ????

    Si quelqu'un a une solution je suis preneur

    Amicalement

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Bon, en fait, il faut faire le test (xhr.status == 200) une fois que tu as (xhr >= 3). Parce qu'avant, c'est galère.

    De plus, ne fais pas spécialement un test sur (xhr.status == 200), mais sur (xhr.status >= 200 && xhr.status < 400). Pourquoi ? Parce que xhr.status renvoie l'état de la requête, état qui selon la norme HTTP peut valoir n'importe laquelle des valeurs entre 200 (inclus) et 400 (exclus) et êre correct. Au dela de 400, ce sont les véritables erreurs qui empêchent l'acheminement du fichier. Par exemple, il n'est pas rare que tu rencontres des (xhr.status == 304) et que le fichier qui t'es transmis soit correct.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 23
    Points : 12
    Points
    12
    Par défaut Super
    effectivement j'y avais pas pensé.
    Merci beaucoup pour ces informations fortes intéressante

    Amicalement - khoudj

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] AJAX erreur code 0 sur une méthode POST
    Par Batou_37 dans le forum AJAX
    Réponses: 4
    Dernier message: 24/03/2014, 13h29
  2. Erreur non spécifiée
    Par Neuromancien2 dans le forum ASP
    Réponses: 4
    Dernier message: 15/06/2007, 10h58
  3. Réponses: 4
    Dernier message: 19/04/2007, 07h32
  4. Erreur non spécifiée... plus de form
    Par directs dans le forum EDI
    Réponses: 5
    Dernier message: 26/01/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo