Unten ist mein Code in einer JavaScript-Datei, die in einer HTML-Datei enthalten ist. Wenn ich console.log msg kann ich sehen, gibt es 100 Elemente im Array (siehe Screenshot), aber dataArray ist immer noch nach der letzten console.log (dataArray).Warum wird das Array nicht mit der Ajax-Antwort gefüllt?
Ich bekomme keine Fehler oder solche Sachen, so dass es schwer für mich ist, dies zu debuggen.
function loadPosts() {
var dataArray = new Array();
var root = 'https://jsonplaceholder.typicode.com';
$.ajax({
url: root + '/posts/',
method: 'GET',
success:function(msg){
dataArray = msg;
}
});
console.log(dataArray);
}
window.onload = loadPosts;
Mögliches Duplikat von [AJAX asynchroner Aufruf - Daten können nicht mit Callback zurückgegeben werden?] (Https://stackoverflow.com/questions/14732123/ajax-asynchronous-call-cant-return-data-with-callback) – Redu
Ihre ArrayList haben ArrayList geschachtelt. Sie müssen es parieren, um ein tatsächliches Array zu erhalten. Ändern Sie dieses 'dataArray = msg;' in 'dataArray = msg.d;' –
versuchen Sie async: false. – nilesh