Aufruf einer ajax-Funktion innerhalb einer Funktion (jQuery)
function getCChatStatus() {
jQuery.ajax({
type: "POST",
url: "index.php?page=CChatAction",
data: { action: "getStatus" }
}).done(function(msg) {
var cChatStatus = jQuery.parseJSON(msg);
return cChatStatus;
});
}
function CChatOptions() {
var test = getCChatStatus();
alert(test);
}
ist wieder in "- test nicht definiert ist".
Wie man dieses Problem lösen? Ich habe bereits versucht, async: false.
Dank
- mögliche Duplikate von Return-Wert aus dem inneren von $.ajax () - Funktion
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Verwendung von asynchronen Funktionen wie jQuery.ajax, müssen Sie verwenden callback-Funktionen, um die Ergebnisse auszuwerten.
Damit, Ihre getter werden asynchron:
Und Ihre Prüfung Aussehen:
Die ajax-Funktion asynchron ist und hat nicht zurückgegeben, aber wenn Sie sind dem Aufruf der alert.
Könnten Sie auch tun:
Ihre
getCChatStatus()
Funktion ist nicht wieder alles. Auch mitasync: false
Ihre Funktion zurückgeben muss, der Rückgabewert der$.ajax()
nennen. Die Rückkehr der tatsächlichen beobachtbaren Objekt, das man von einer asynchronen$.ajax()
rufen und arbeiten mit, dass, anstatt zu laufen synchronen AJAX requests.Versuchen sollte diese Arbeit !!