我有一个关于使用getJson的问题。
我有一个getJson电话,我无法弄清楚为什么它没有做那应该做的事情。然后我在getJson之后发出警报,发现警报在getJson之前执行。
然后我想到解决这个问题的唯一方法就是使用 带有async false的$ .ajax如下
$.ajax({
url: url,
dataType: 'json',
async: false,
success: function (data) {
if (data == true) {
alert("Cannot continue.")
returnval = false;
}
}
});
只是想知道是否有任何其他方法可以解决这个问题,我需要json通过ajax调用先执行而不使用async false。请注意,我正在使用MVC C#,上面的代码在我看来。
答案 0 :(得分:0)
很简单 - 删除async:false。正如您所做的那样,您需要在成功块中调用将在您的调用之后运行的代码。如果要执行大量代码,可以将其放入自己的函数中:
var doThisOnResult = function(data) {
alert('Data is here.');
};
然后在$ .ajax调用中,执行
success: doThisOnResult
请注意,您不希望在该行上使用parens,因为您将函数作为变量传递而不是调用它。