晚上好人,
我有以下请求AJAX:
function getJson(url) {
var json;
$.ajax({
type: "POST",
url: url,
dataType: "json",
async: false,
success: function (data)
{
alert(data);
json= data;
}
});
return json;
}
执行时,它会在Chrome的网络标签上显示json。但我无法在警报和返回时操纵变量数据。代码有问题吗?
答案 0 :(得分:0)
您误解了异步功能。当JS运行 $ .ajax 时,它不会等待它继续完成代码。因此,当您return json;
在定义之前返回它时。您将不得不通过使用嵌套回调,promises或async / await来重构代码。这是异步编程新手遇到的常见问题,对学习者来说可能非常令人沮丧。