Aide AJAX: httpRequest.responseText ...

Résolu
Freddy_666 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Freddy_666 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   894
 
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   Statut Membre Dernière intervention  
 
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