Eine variable nach ajax getan
Ich habe diesen code für einige Anfrage zu meinem server:
function myAjaxCheck(token) {
$.ajax({
type: 'POST',
url: 'auth.php',
data: {
token: token,
},
dataType: 'json',
success: function (data) {
if (data.auth == 'OK') {
alert ('ok');
}
} else {
alert('Error: ' + data.auth);
}
}
}).done(function (data) {
return data;
});
}
So, ich muss übergeben Sie die zurückgegebenen Daten in eine variable wie:
Var MyVariable = myAjaxCheck(token);
console.log(MyVariable);
in der Konsole:
undefined
Wo ist das problem, soll-Daten werden zurückgegeben, wenn Sie fertig sind, ist es aber nicht.
- Kleinbuchstaben "Var"?
- sorry, schnell Bearbeiten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standardmäßig eine
ajax()
request asynchron ab, so dass der Aufrufajax()
wird in der Regel zurück, bevor die Anforderung beendet wird. Nutzen Sie eine callback-Funktion statt.Wenn Sie unbedingt müssen, Sie könnte verwenden
async: false
innerhalb der Aufruf vonajax()
.Finden Sie Warten $.post fertig zu stellen.
Grundsätzlich ist es besser, Rückrufe. Deine variable zu sein scheint
undefined
, weil der code wieder an die Konsole ausgeführt wird, bevor der AJAX-request abgeschlossen ist.Weil Sie erwarten, dass Sie einen Wert sofort zurückzugeben. Sie sind mit asynchron-XHR, so wird die Funktion return (
undefined
in diesem Fall) vor dem XHR eine chance hat, zu beenden und wieder seinen Wert.