Maison >interface Web >js tutoriel >Comment puis-je récupérer correctement le texte de réponse AJAX dans Prototype.js ?

Comment puis-je récupérer correctement le texte de réponse AJAX dans Prototype.js ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-18 10:58:10418parcourir

How Can I Properly Retrieve AJAX Response Text in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn