我试图从AJAX调用的成功部分获取数据。所以我试图为此写一个回调函数。我有这样的代码:jQuery AJAX回调函数不能按预期工作:
var data2;
$(function() {
function callback(data) {
console.log(data);
data2 = JSON.parse(data);
console.log(data2);
}
$("myForm")
.submit(function (event) {
$.ajax({
type: 'POST',
url: "/...",
data: "JASON",
success: callback
});
});
console.log(data2);
});
在控制台中我看到这样的顺序: undefined
的data
和data2
内容的内容。
我不明白的是,为什么我第一次得到undefined
?我不应该先创造价值data
吗?为什么最后一个console.log首先被执行?最重要的是,我从AJAX调用获取数据的方法是正确的吗?我还能做些什么来获取数据?谢谢。
你的第一个控制台是'console.log(newdata2);'后面2给你正确的值 –
@VinodLouis这就是我不明白的......为什么它是第一个?它应该是最后一个。 – starrr
[我如何从异步调用返回响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – Andreas