getJson vs. $ .ajax()

时间:2012-10-18 21:44:40

标签: jquery getjson

我有一个关于使用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#,上面的代码在我看来。

1 个答案:

答案 0 :(得分:0)

很简单 - 删除async:false。正如您所做的那样,您需要在成功块中调用将在您的调用之后运行的代码。如果要执行大量代码,可以将其放入自己的函数中:

var doThisOnResult = function(data) {
  alert('Data is here.');
};

然后在$ .ajax调用中,执行

success: doThisOnResult

请注意,您不希望在该行上使用parens,因为您将函数作为变量传递而不是调用它。