Ajax调用返回未定义的数据

本文关键字:数据 未定义 返回 调用 Ajax | 更新日期: 2023-09-27 17:59:07

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

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

Ajax调用

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返回为未定义的吗

更新
正如下面所建议的,我将数据写入控制台,它似乎返回了一个空字符串。所以我想问题应该更多"为什么数据返回为空?"

Ajax调用返回未定义的数据

通过complete选项指定的函数不会接收数据(原因很充分:即使没有数据,也会调用它,因为存在错误)。将complete:更改为success:

var req = $.ajax({
    url: serviceURL,
    type: "POST",
    data: JSON.stringify(param),
    contentType: "application/json",
    success: successFunc, // <=== Here
    error: errorFunc
});