Ajax调用返回未定义的数据

时间:2015-06-22 09:54:40

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

我有一个从MVC控制器方法请求数据的ajax调用。
我从控制器返回一个Json结果。

Ajax请求完成,但返回的数据未定义。

Ajax Call

var param = {
    "username": uname,
    "password": pass
};
var serviceURL = "/Account/CheckUser";

var req = $.ajax({
    url: serviceURL,
    type: "POST",

    data: JSON.stringify(param),

    contentType: "application/json",

    complete: successFunc,
    error: errorFunc
});

function successFunc(data) {
    if (data.exists == true) {
        console.log("Completed : " + data.exists);
    } else {
        console.log("Failed : " + data.exists);

    }
}


控制器方法

[HttpPost]
public JsonResult CheckUser(string uname, string pass)
{
    Boolean cont = true;
    return Json(new { exists = cont });
}



谁能告诉我为什么exists返回未定义?

更新
如下所示,我将数据写入控制台,似乎它返回一个空字符串。所以我想问题应该更多' 为什么数据会变空?

1 个答案:

答案 0 :(得分:2)

您通过complete选项doesn't receive the data指定的功能(理由很充分:即使没有数据也会调用它,因为出现错误)。将complete:更改为success:

var req = $.ajax({
    url: serviceURL,
    type: "POST",

    data: JSON.stringify(param),

    contentType: "application/json",

    success: successFunc, // <=== Here
    error: errorFunc
});