我有一个从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
返回未定义?
的更新
如下所示,我将数据写入控制台,似乎它返回一个空字符串。所以我想问题应该更多' 为什么数据会变空?
答案 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
});