Maison > interface Web > js tutoriel > Comment récupérer le texte de réponse AJAX de manière fiable dans Prototype.js ?

Comment récupérer le texte de réponse AJAX de manière fiable dans Prototype.js ?

Linda Hamilton
Libérer: 2024-12-13 22:26:12
original
419 Les gens l'ont consulté

How to Retrieve AJAX Response Text Reliably in Prototype.js?

Récupération du texte de réponse AJAX dans un prototype

Dans le développement AJAX basé sur un prototype, l'obtention du texte de réponse peut être difficile. Une approche courante consiste à utiliser le rappel onComplete, comme indiqué ci-dessous :

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;
}
Copier après la connexion

Cependant, cette approche aboutit souvent à une variable de résultat vide en raison de la nature asynchrone des requêtes AJAX. Le rappel onComplete est invoqué une fois la fonction somefunction terminée, ce qui entraîne une incompatibilité de timing.

Pour résoudre ce problème, une fonction de rappel doit être transmise à somefunction en tant que paramètre. Ce rappel sera exécuté lorsque l'opération AJAX sera terminée, comme démontré dans le code corrigé ci-dessous :

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);
      }
    }
  });

}
somefunction(function(result){
  alert(result);
});
Copier après la connexion

Dans ce scénario, la fonction de rappel est invoquée dans le gestionnaire onComplete, garantissant que le texte de réponse est disponible lorsque la fonction principale est terminée. Le rappel transmis peut ensuite utiliser le texte de réponse pour un traitement ultérieur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal