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 :

[XMLHttpRequest] Pourquoi ce code fonctionne sous IE8 et pas sur Firexox 3.0.11


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut [XMLHttpRequest] Pourquoi ce code fonctionne sous IE8 et pas sur Firexox 3.0.11
    Bonjour,

    Je cherche à générer une requête HTTP via du JS pour récupérer le contenu d'une page grâce à un GET. Pour réaliser cela j'utilise XMLHttpRequest avec le code suivant:
    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
    function getXhr()
    {
    			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 sendTrace()
    		{
    			var xhr = getXhr();
     
    			// On défini ce qu'on va faire quand on aura la réponse
    			xhr.onreadystatechange = function(){
    				// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    				if(xhr.readyState == 4 && xhr.status == 200){
    					alert(xhr.responseText);
    				}
    			}
    			xhr.open("GET","http://www.unsite.fr",true);
    			xhr.setRequestHeader("Cache-Control","no-cache");
    			xhr.send(null);
    }
    Sous IE8, j'obtiens bien le résultat dans une boite d'alerte alors que sous Firefox, rien du tout.

    Sauriez vous pourquoi et comment y remédier?

    Merci.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    Salut,

    ton code ne marche pas sous Firefox car tu utilise un activeX et ceux-ci sont compatibles uniquement avec IE.

    Si tu veux que cela fonctionne sous Firefox, c'est tout expliqué ici (c'est en anglais)

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par nesfe Voir le message
    Salut,

    ton code ne marche pas sous Firefox car tu utilise un activeX et ceux-ci sont compatibles uniquement avec IE.

    Si tu veux que cela fonctionne sous Firefox, c'est tout expliqué ici (c'est en anglais)
    Sa fonction getXhr est la version classique qui circule : il utilise de l'activeX avec IE mais du XmlHTTPRequest avec FF, donc non je ne crois pas que ce soit le problème...

  4. #4
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par nesfe Voir le message
    Salut,

    ton code ne marche pas sous Firefox car tu utilise un activeX et ceux-ci sont compatibles uniquement avec IE.

    Si tu veux que cela fonctionne sous Firefox, c'est tout expliqué ici (c'est en anglais)
    Sa fonction getXhr est la version classique qui circule : il utilise de l'activeX avec IE mais du XmlHTTPRequest avec FF, donc non je ne crois pas que ce soit le problème...
    Moi aussi je suis de ton avis! ;-) Surtout qu'en plus je ne reçois pas le message que mon navigateur ne supporte pas l'objet XMLHTTPRequest.

    Serait il possible que cela soit un problème de version? J'ai la 3.0.11 mais ca m'étonnerait.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 6
    Par défaut
    Effectivement j'avais pas bien vu son code.

    Ceci dit c'est pas une question de version... mais si tu penses que c'est ça, tu peux toujours essayer de télécharger la 3.5 de FF

  6. #6
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par homeostasie Voir le message
    ... mais ca m'étonnerait.
    Ca m'étonnerait aussi. ^^

    En termes de débuggage, qu'as-tu déjà essayé ?
    Pistes possibles :

    >>> pendant le temps des tests, "élargir" un peu le champ de ton alert, genre :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    xhr.onreadystatechange = function(){
       // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
       if(xhr.readyState > 1){
          alert(xhr.responseText);
       }
    }
    >>> dans firebug, surveiller le déroulement de la fonction jusqu'au send (notamment la nature et les propriétés de ton xhr)

    >>> peut-être aussi surveiller l'entête avec LiveHTTPHeaders (module complémentaire firefox) pour voir en détail la nature de ce qui est envoyé au serveur

  7. #7
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    >>> dans firebug, surveiller le déroulement de la fonction jusqu'au send (notamment la nature et les propriétés de ton xhr)
    Je ne peux même pas débugger pas à pas mais dans la console je constate que j'ai l'erreur suivante:
    Citation Envoyé par firebug
    Access to restricted URI denied" code: "1012
    xhr.open("GET","http://www.lesite.fr",true);
    Serais ce une option à régler dans firefox pour autoriser ce genre de requête?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    a tester si le get n'attend pas explicitement un fichier et voire même un path relatif ...
    index ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/02/2011, 14h45
  2. code fonctionnant sous IE mais pas firefox ni chrome
    Par Hotei dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 04/03/2010, 16h39
  3. Réponses: 1
    Dernier message: 18/11/2009, 13h28
  4. [JMF] Code fonctionnant sous Linux mais pas sous XP
    Par Monsieur_Max dans le forum Multimédia
    Réponses: 4
    Dernier message: 25/05/2006, 18h57

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