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

AJAX Discussion :

Fonction XMLHttpRequest Ok sous Firefox, KO sous Chrome et Internet Explorer


Sujet :

AJAX

  1. #1
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut Fonction XMLHttpRequest Ok sous Firefox, KO sous Chrome et Internet Explorer
    Salut

    Après de multiples essais, je ne parviens pas à récupérer le contenu d'un fichier .TXT sous Chrome et Internet Explorer alors que sous Firefox tout se passe bien.
    J'ai donc une erreur que je situe à se niveau if (this.readyState == 4 && this.status == 200), car je n'ai jamais la boite d'alerte qui s'affiche, alors que quand j'en ai une juste avant, elle apparait bien.
    Mon code, une fonction loadDoc, qui appelle l'autre fonction getXMLHTTP sensée adapter suivant le navigateur utilisé.
    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
    function getXMLHTTP()
    {
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    		else if(window.ActiveXObject){ // Internet Explorer 
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    				} catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    				} 
    	return xhr;
    }
    function loadDoc()
    {
    	var xhttp = new getXMLHTTP; //new XMLHttpRequest();
    	//alert(typeof(xhttp)); // object Firefox, Chrome et Internet Explorer
    	//alert(typeof(xhttp.onreadystatechange)); // object Firefox, Chrome et Internet Explorer
    	//alert(typeof(xhttp.readyState)); // number Firefox, Chrome et Internet Explorer
    	//alert(typeof(xhttp.status)); // number Firefox, Chrome et Internet Explorer
    	//xhttp.onreadystatechange = function(){if (xhttp.readyState == 4 && xhttp.status == 200)
    	//xhttp.onreadystatechange = function(){if (xhttp.readyState == 4)
    	//xhttp.onreadystatechange = function(){if (xhttp.status == 200)
    	//xhttp.onreadystatechange = function(){if (xhttp.responseText != '')
    	xhttp.onreadystatechange = function(){if (this.readyState == 4 && this.status == 200)
    											{
    											//alert(typeof(xhttp.status)); //  Chrome et Internet Explorer ne passe jamais dans la condition
    											document.getElementById("demo").innerHTML = this.responseText;
    											}
    										 };
    	xhttp.open("GET", "untexte.txt", true);
    	xhttp.send();
    }
    Merci de votre attention.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je viens d'essayer ton code sur IE 11, Chrome et FF et ça marche avec les 3.

    Code php : 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
     
    <script>
    function getXMLHTTP()
    {
     var xhr = null; 
     if(window.XMLHttpRequest) // Firefox et autres
      xhr = new XMLHttpRequest(); 
      else if(window.ActiveXObject){ // Internet Explorer 
       try {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
                       xhr = new ActiveXObject("Microsoft.XMLHTTP");
                   }
        }
        else { // XMLHttpRequest non supporté par le navigateur 
           alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
           xhr = false; 
        } 
     return xhr;
    }
    function loadDoc()
    {
     var xhttp = new getXMLHTTP; //new XMLHttpRequest();
     //alert(typeof(xhttp)); // object Firefox, Chrome et Internet Explorer
     //alert(typeof(xhttp.onreadystatechange)); // object Firefox, Chrome et Internet Explorer
     //alert(typeof(xhttp.readyState)); // number Firefox, Chrome et Internet Explorer
     //alert(typeof(xhttp.status)); // number Firefox, Chrome et Internet Explorer
     //xhttp.onreadystatechange = function(){if (xhttp.readyState == 4 && xhttp.status == 200)
     //xhttp.onreadystatechange = function(){if (xhttp.readyState == 4)
     //xhttp.onreadystatechange = function(){if (xhttp.status == 200)
     //xhttp.onreadystatechange = function(){if (xhttp.responseText != '')
     xhttp.onreadystatechange = function(){if (this.readyState == 4 && this.status == 200)
               {
               //alert(typeof(xhttp.status)); //  Chrome et Internet Explorer ne passe jamais dans la condition
               document.getElementById("demo").innerHTML = this.responseText;
               }
               };
     xhttp.open("GET", "untexte.txt", true);
     xhttp.send();
    }
    </script>
    <div id="demo"></div>
    <script>
    loadDoc();
    </script>

    untexte.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Heureux les détenteurs d’une adresse Outlook.com ou Hotmail, qui relevaient jusqu’ici leurs messages avec Thunderbird, IncrediMail ou Mail Mac : ils vont pouvoir abandonner l’antédiluvienne relève par le protocole POP !
    Nom : 20170501_004.jpg
Affichages : 643
Taille : 79,6 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut
    Merci d'avoir pris en compte ma demande d'aide

    Une précision utile , je lance le .html depuis un dossier local, non pas via un site weeb, ceci explique peut être cela
    Je suis un petit nouveau dans l'écriture en HTML, JavaScript, CSS et compagnie.
    Cela ne fonctionne pas en local, mais je voulais un peu mieux maitriser les choses avant que d'installer çà sur un serveur.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je suis en local sur mon serveur web. Comme tu utilises des composants qui ont besoin du web (même local) pour fonctionner je pense que ça doit être la cause du problème.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut
    re
    Merci du coup de mains.

    En fait la fonction getXMLHTTP dans sa condition if(window.XMLHttpRequest) renvoie toujours True et donc un objet new XMLHttpRequest() et ce, que ce soit sous Firefox, Chrome ou Internet Explorer.
    Si je force un objet new ActiveXObject("Msxml2.XMLHTTP") ou new ActiveXObject("Microsoft.XMLHTTP"), j'ai un plantage à la ligne if (this.readyState == 4 && this.status == 200) quand je lance le code sous Chrome ou Internet Explorer.

    Je vais à nouveau investiguer demain ....... des fois que
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Le problème vient de ce que tu n'as pas de server web d'installé sur ta machine. Je viens de faire le test d'ouvrir la page html sans passer par une url et effectivement ça marche avec FF mais pas avec IE et Chrome.

    La seule solution est d'utiliser un serveur web (Apache ou IIS principalement) et d'appeler ton script avec une url.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  7. #7
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 169
    Points
    17 169
    Par défaut
    Salut

    J'ai installé un serveur Apache, encore de petites difficultés de paramétrage, de droit d’accès au fichier, mais cela étant un autre sujet, je passe la discussion en résolue puisque tu m'as donné toutes les indications utiles pour arrivé à passer par une url si le navigateur n'est pas Firefox.

    Merci encore de ton aide.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. Bug sous Chrome et pas sous Firefox ni sous Safari ni sous IE
    Par elcoyotos dans le forum Mise en page CSS
    Réponses: 17
    Dernier message: 01/11/2015, 13h56
  2. PB lien sur image sous IE, pas sous Firefox.
    Par django29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/08/2006, 15h54
  3. Verif de formulaire tourne sous IE pas sous FireFox
    Par Hakim_Bey dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/07/2006, 10h28
  4. Verif de formulaire tourne sous IE pas sous FireFox
    Par Hakim_Bey dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/07/2006, 19h11
  5. getElementById OK sous IE pas sous Firefox
    Par omlip dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/06/2006, 12h04

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