Heim >Web-Frontend >js-Tutorial >Wie kann ich AJAX-Antworttext in Prototype.js ordnungsgemäß abrufen?
AJAX-Antworttext abrufen
Bei der Arbeit mit AJAX unter Verwendung eines Prototyps ist es wichtig zu verstehen, wie der Antworttext für die weitere Verarbeitung abgerufen wird. Der von Ihnen bereitgestellte Originalcode:
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; }
gibt aufgrund der asynchronen Natur von AJAX möglicherweise nicht den gewünschten Wert zurück. Hier ist ein besserer Ansatz:
Übergabe einer Callback-Funktion
Anstatt die Antwort direkt zurückzugeben, definieren Sie eine Callback-Funktion als Parameter für somefunction(). Diese Rückruffunktion wird aufgerufen, wenn die AJAX-Anfrage abgeschlossen ist:
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); } } }); }
In einer anderen Funktion können Sie jetzt somefunction() aufrufen und den Rückruf bereitstellen, um den Antworttext zu verarbeiten:
somefunction(function(result){ alert(result); });
Durch die Verwendung einer Rückruffunktion können Sie sicherstellen, dass das Ergebnis verarbeitet wird, wenn die AJAX-Anfrage abgeschlossen ist, wodurch das Problem einer leeren Antwortzeichenfolge vermieden wird.
Das obige ist der detaillierte Inhalt vonWie kann ich AJAX-Antworttext in Prototype.js ordnungsgemäß abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!