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 :

[AJAX] AJAX et FF3 - le résultat du Get ne revient pas


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut [AJAX] AJAX et FF3 - le résultat du Get ne revient pas
    RE bonjour à tous,

    Étant donné que vous m'avez sortie de mon dernier problème je reviens pour un nouveau

    Mon code fonctionne parfaitement sur IE et il semble sur FF3 il y ai un phénomène étrange...

    Le GET de ma requête part bien, selon firebugs, mais ne revient pas.
    J'ai cherché un peu sur le net et il semble que le phénomène existe avec des requêtes en synchrone ce qui n'est pas mon cas.
    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
    // JavaScript Document
    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
    }
     
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function GoRechercheAnnuaire(annu_text , annu_critere , nb_start){
      var col_g_txt  = 	'<div id="col_gauche"><div><img alt="" class="float_left" src="images/interface/tetieres_coin_gauche1.gif" /><h2 class="tetiere4">Annuaire</h2></div><div id="autres_annu"><h4 class="droite couleur03">communaut&eacute;</h4>Vous pouvez &eacute;galement, sous Lotus, consulter les annuaires suivants :<br /><a href="#" class="js_lien_externe">Annuaire Aramice</a><br /><a href="#" class="js_lien_externe">Annuaire Audiens</a><br /><a href="#" class="js_lien_externe">Annuaire Novalis-Taitbout</a></div><div id="col_gauche_site"></div></div>';
      var CompteArebours = new Date();
     
      var request = 'http://vpa1ddoe1/test/W3/offi.nsf/GoRechercheAnnuaire?OpenAgent&annuaire_text='+annu_text
    	+'&annuaire_critere='+annu_critere+'&start='+nb_start+'&time=' + CompteArebours.getSeconds();
     
    	document.getElementById("acc_content").innerHTML = col_g_txt + '<div id="col_centrale"></div>';
     
    	var xhr = getXhr();
    	xhr.open("GET",request,true);
     
      // 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){
          if (xhr.status == 200){
            document.getElementById("col_centrale").innerHTML = xhr.responseText;
          }else{
            document.getElementById("col_centrale").innerHTML = "<h1>Erreur de chargement</h1>";
          }
        }else{
          document.getElementById("col_centrale").innerHTML = '<h1>Recherche en cours</h1><img src="images/interface/ajax-loader.gif">';
        }
      }
     
    	xhr.send(null);
    }
    Il semble que le xhr.send(null); ne soit pas toujours interprété correctement sur FF3, quelqu'un a-t-il déjà constaté le problème et surtout trouvé une solution...

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Le GET de ma requête part bien, selon firebugs, mais ne revient pas.
    C'est a dire?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Et bien firebugs donne bien le head et les paramètres, l'interface de console voie bien l'appel GET à l'adresse souhaité mais l'onglet réponse reste désespérément vide...

    Je ne sais pas si c'est bien claire.

    J'ai aussi essayé d'ouvrir sous FF3 l'adresse de la requête (GET) et la page s'ouvre correctement, pas de souci juste l'évènement AJAX ne voie pas le retour asynchrone de l'appel...

  4. #4
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    S'il te met une réponse vide, c'est qu'il obtient bien une réponse, mais qu'elle ne contient rien

    Première chose: est-ce que ton readyState passe bien a 4? Et as tu bien un statut a 200 ?

    Si oui, essaie de mettre une réponse toute bete en retour de ta requete pour vérifier que ce n'est pas ton code qui la ferait planter.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Je veux bien mais, mais dans ce cas pourquoi sous IE il capte bien le readyState à 4??

    Je test le changement et te tien au courant des tests.

    ---------
    Alors oui on passe bien en readyState à 4 mais xhr.status = 0 semble-t-il!!
    Il ne passe pas dans le traitement de page chargé Ok xhr.status = 200 comme c'est normalement le cas!!!

  6. #6
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Tu fais bien ta requete vers une page hébergée sur un serveur web?

    Parce que un status a 0 correspond généralement à un appel vers une url non hébergée sur un serveur.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Oui oui l'appel se fait sur un Serveur Web Domino (Lotus Notes)

    Lorsque j'appelle l'url directement dans FF la page revient bien comme il faut!!!

    Et je le répète, IE lui voie parfaitement le retour et affiche de façon correcte la page de retour...

  8. #8
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lorsque j'appelle l'url directement dans FF la page revient bien comme il faut!!!
    Tu fais pas de requete ajax, donc c'est normal que ca marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Et je le répète, IE lui voie parfaitement le retour et affiche de façon correcte la page de retour...
    Différences entre Firefox et IE, toussa...

    Essaie dans ta condition de rajouter le cas ou le status vaut 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (xhr.status == 200 || xhr.status == 0)
    Sinon, je ne sais pas, je ne connais pas ton serveur pour pouvoir plus t'aider.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 21
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Essaie dans ta condition de rajouter le cas ou le status vaut 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (xhr.status == 200 || xhr.status == 0)
    Sinon, je ne sais pas, je ne connais pas ton serveur pour pouvoir plus t'aider.
    J'ai testé mais, il semble que FF ne voie rien il passe au bon endroit mais ne trouve rien dans xhr.responseText comme si la chaine était vide...

    Existe-t-il une autre propriété à tester pour la réponse... que je test?

    J'ai testé le retour de la propriété responsXML pour voire met sous FF elle retourne null

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var request = 'http://vpa1ddoe1/test/W3/offi.nsf/GoRechercheAnnuaire
    Ne pourrait-il pas y avoir un souci de Same Origin Policy (IE est moins strict que FF là-dessus) ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Membre éprouvé Avatar de DiDieuh
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 111
    Par défaut
    J'ai eu droit à une expérience comme ça ,et effectivement IE en avait rien à faire de savoir ou partait la requête Ajax, alors que FF envoyait la requête mais c'est tout. Si ça peut aider à débroussailler un peu...

Discussions similaires

  1. [AJAX] Tronquage d'une URL passée en GET
    Par coeurdange dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/09/2008, 10h52
  2. [AJAX] liste déroulante dynamique 2 résultats
    Par btobnet dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/04/2008, 15h59
  3. [AJAX] Ajax xmlhttpRequest : affichage d'un résultat dans une div
    Par kataboy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/12/2007, 15h47
  4. [AJAX] Gérer plusieurs pages de résultats d'une requête
    Par dubitoph dans le forum Général JavaScript
    Réponses: 34
    Dernier message: 25/07/2007, 15h08
  5. [AJAX] probleme de récupération de donnée par GET
    Par Death83 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/06/2006, 17h00

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