Aide AJAX: httpRequest.responseText ...

Résolu/Fermé
Freddy_666 Messages postés 5 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 2 juillet 2008 - 21 mai 2008 à 12:42
Freddy_666 Messages postés 5 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 2 juillet 2008 - 21 mai 2008 à 19:41
Bonjour,
Je suis actuellement en train d'apprendre les requêtes Http, et un problème me perturbe, pour vous l'expliquer voici le code que j'utilise:
function faire_requete(url)
{
httpRequest = creer_requete();
httpRequest.onreadystatechange = function ()
{
if (httpRequest.readyState == 4)
{
if (httpRequest.status == 200)
{
return httpRequest.responseText;
}
else
{
alert('Un problème est survenu avec la requête.');
}
}
}
httpRequest.open("GET", url, true);
httpRequest.send(null);
}
hors, le return httpRequest.responseText; me retourne rien (undefined). J'ai donc essayer de remplacer la ligne par :
avert(httpRequest.responseText);
Pour essayer de voir si sa fonctionne, et bien j'ai de la chance, sa m'affiche le bon resultat.
Alors comment faire pour que sa fonctionne avec le return ?

PS: la fonction creer_requete() permet d'initialiser la requete Http selon le navigateur.

Merci de vos reponses.

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 mai 2008 à 18:23
Bonsoir,

Ajax ne fonctionne pas tout à fait comme une fonction "classique"

si tu mets dans la fonction qui traite la réponse:

return httpRequest.responseText;


le return envoie la réponse à qui ? à la fonction qui l' a appelée ??

si par alert tu vois bien la réponse attendue, il faut que tu opères différemment

au lieu du return, si tu veux par exemple que la réponse s'écrive dans une partie de ta page HTMl, à l'endroit de ta page tu mets:

<div id="id_ecrire"><!-- la sera chargee la reponse --></div>

et à la place du return tu mets:

var obj=document.GetElementById('id_ecrire');
obj.innerHTML=httpRequest.responseText;
2
Freddy_666 Messages postés 5 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 2 juillet 2008
21 mai 2008 à 19:41
Ok merci, la solution fonctionnait comme sa mais je cherchais a faire plus compliqué....
Mais j'ai trouvé une direction différente qui marche plutôt bien. C'est aussi un innerHTML mais dynamique avec l'ID passé en paramètre...

En tout cas, encore merci.
0