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] requête AJAX sans resultat


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut [AJAX] requête AJAX sans resultat
    Bonjour,

    Je veux faire une requête AJAX qui est une url qui renvoie un fichier xml.
    Cette requête est déclenchée par un clic sur un bouton dans ma page web.
    Sur le onclick du bouton, j'appelle la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var address = document.getElementById("zz").value;
    	var url = 'http://maps.googleapis.com/maps/api/geocode/xml?address=\''+address+'\'&sensor=true';
    	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",url,true);
    	xhr.send(null);
    où getXhr() est la fonction :
    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
     
    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;

    L'url défini dans ma fonction est correcte, si je l'exécute directement dans un navigateur, j'ai bien le fichier xml attendu.
    pour l'instant, je cherche juste à afficher le fichier xml dans une boite de message, mais rien ne s'affiche, même pas une boite vide...

    qu'est-ce qu'il manque?


    Merci,

    Nico

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    address=\''+address+'\'&sensor=true'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    address='+encodeURI(address)+'&sensor=true'
    Sinon remplace
    if(xhr.readyState == 4 && xhr.status == 200){
    alert(xhr.responseText);
    }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(xhr.readyState == 4){
        if(xhr.status == 200){
    	alert(xhr.responseText);
        } else{
    	alert(xhr.status)
        }
    }
    pour voir.

    A+.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut
    j'ai xhr.status=0

    d'après ce que j'ai lu sur la récupération des données, le code 0 ou le code 200, c'est la même chose, et ça veut dire que c'est OK...

    Nico

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    As tu modifier l'URL comme je l'ai dit?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut
    Oui, voici ma fonction :
    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
    var address = document.getElementById("zz").value;
    	var url = 'http://maps.googleapis.com/maps/api/geocode/xml?address='+encodeURI(address)+'&sensor=true';
    	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){
    					if(xhr.status == 200){
    						alert(xhr.responseText);
    					} 
    					else {
    						alert('xhr.status = '+xhr.status);
    						alert(xhr.responseText);
    					}
    				}
    				}
    	xhr.open("GET",url,true);
    	xhr.send(null);
    Nico

  6. #6
    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 : 54
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = 'http://maps.googleapis.com/maps/api/geocode/xml?address='+encodeURI(address)+'&sensor=true';
    A moins que tu ne développes pour Google (ce dont je doute ), il y a fort à parier que tu sois confronté à la Same Origin Policy...
    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

Discussions similaires

  1. [AJAX] Requête ajax ne retourne rien
    Par daisy22 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/03/2009, 16h49
  2. [AJAX] Requête Ajax lors de la fermeture d'une pop up
    Par Persanne dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/11/2008, 17h01
  3. [AJAX] Requête ajax par un seul ou plusieurs fichiers ?
    Par codefalse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2008, 15h25
  4. [AJAX] requète AJAX en boucle
    Par Emcy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 11h30
  5. [AJAX] InlineMod - Ajax - Requêtes PHP-MySQL
    Par funkyy dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/04/2008, 17h17

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