Maison >interface Web >js tutoriel >Comment puis-je récupérer correctement le texte de réponse AJAX dans Prototype.js ?
Récupération du texte de réponse AJAX
Lorsque vous travaillez avec AJAX à l'aide d'un prototype, il est essentiel de comprendre comment récupérer le texte de réponse pour un traitement ultérieur. Le code d'origine que vous avez fourni :
somefunction: function(){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; } } }); return result; }
peut ne pas renvoyer la valeur souhaitée en raison de la nature asynchrone d'AJAX. Voici une meilleure approche :
Passer une fonction de rappel
Au lieu de renvoyer directement la réponse, définissez une fonction de rappel comme paramètre pour somefunction(). Cette fonction de rappel sera invoquée lorsque la requête AJAX sera terminée :
somefunction: function(callback){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; callback(result); } } }); }
Dans une autre fonction, vous pouvez maintenant appeler somefunction() et fournir le rappel pour traiter le texte de réponse :
somefunction(function(result){ alert(result); });
En utilisant une fonction de rappel, vous pouvez vous assurer que le résultat est traité lorsque la requête AJAX est terminée, éliminant ainsi le problème d'une chaîne de réponse vide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!