Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2010, 06h30   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 243
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 243
Points : 45
Points : 45
Par défaut 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 :
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 :
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
DiverSIG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 08h59   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 123
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 123
Points : 7 284
Points : 7 284
Bonjour,
Citation:
address=\''+address+'\'&sensor=true'
Code :
address='+encodeURI(address)+'&sensor=true'
Sinon remplace
Citation:
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
par
Code :
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+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 09h31   #3
Membre du Club
 
Inscription : juillet 2005
Messages : 243
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 243
Points : 45
Points : 45
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
DiverSIG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 10h20   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 123
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 123
Points : 7 284
Points : 7 284
As tu modifier l'URL comme je l'ai dit?
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 10h31   #5
Membre du Club
 
Inscription : juillet 2005
Messages : 243
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 243
Points : 45
Points : 45
Oui, voici ma fonction :
Code :
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
DiverSIG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 11h13   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 767
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 767
Points : 35 588
Points : 35 588
Code :
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 11h45   #7
Membre du Club
 
Inscription : juillet 2005
Messages : 243
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 243
Points : 45
Points : 45
et y a-t-il un moyen de contourner ça ??
vous avez un exemple?
Nico
DiverSIG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 12h21   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 767
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 767
Points : 35 588
Points : 35 588
Citation:
Envoyé par DiverSIG
et y a-t-il un moyen de contourner ça ??
Avant de vouloir t'en affranchir, essaye déjà de comprendre à quoi ça peut servir...
La Same Origin Policy existe pour des raisons de sécurité et si elle existe, ce n'est certainement pas pour ne servir à rien !
Si tu veux utiliser les services de Google, tu dois passer par leurs API.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h23.


 
 
 
 
Partenaires

Hébergement Web