我正在尝试从 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);
});
在控制台中我按顺序看到了这一点:
未定义
,data
的内容和data2
的内容。
我不明白的是,为什么我一开始会得到undefined
?我不应该首先获取 data
的值吗?为什么最后一个console.log先执行?最重要的是,我从 AJAX 调用获取数据的方法是否正确?我还能做什么来获取数据?谢谢。
最佳答案
AJAX 调用是异步的,这意味着调用完成后,代码将在调用完成之前继续执行下一步。
因此,当进行 AJAX 调用时,会到达 console.log(newdata2);
,我的猜测是 newdata2
未定义。
在一段时间后(即使是很短的时间),调用将得到响应并且回调函数将被调用。
关于javascript - jQuery AJAX 回调函数未按预期工作 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43781614/