$ .getJSON没有调用回调函数

时间:2013-05-15 11:20:07

标签: c# javascript jquery asp.net-mvc

在没有被召唤的情况下回电。

function GetTrainingResults(id,callback){
    $.getJSON("/dashboard/GetTrainingResults/", {'id':id}, callback);
}
GetTrainingResults('id',function(result){
    alert(result);
});

后面的代码是

 public ActionResult GetTrainingResults(int id)
    {
        string test = "You are there.";
        return Json(test, JsonRequestBehavior.AllowGet);
    }

或建议和另一种方式。任务调用控制器方法并等待javascript中的方法响应。

由于

3 个答案:

答案 0 :(得分:3)

如果您使用jQuery.ajax,您至少可以看到服务器返回的错误:

function getTrainingResults(id, callback) {
    $.ajax({
        url: "/dashboard/GetTrainingResults/",
        data: {id: id},
        success: function(data) {
            callback(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
            callback(errorThrown);
        }
    });
}

答案 1 :(得分:1)

您的Action方法中的

id需要int,但您在JS中将string传递给'id'。更改您的JS或您的操作方法,以便类型匹配。

答案 2 :(得分:0)

检查您的请求是否成功返回,如果请求成功,则ajax简写函数仅调用回调(即状态代码200和正确的数据类型,即json)。尝试完整的.ajax jquery函数,看看幕后发生了什么。

.getJSON()也是等效的

$.ajax({
 dataType: "json",
 url: url,
 data: data,
 success: success
});

所以它可能会出现错误:由于数据类型。

来源http://api.jquery.com/jQuery.getJSON/