Javascript Ajax调用返回未定义的数据
我有一个ajax调用,它从MVC控制器方法请求数据Javascript Ajax调用返回未定义的数据,javascript,c#,jquery,ajax,asp.net-mvc,Javascript,C#,Jquery,Ajax,Asp.net Mvc,我有一个ajax调用,它从MVC控制器方法请求数据 我正在从控制器返回Json结果。 Ajax请求完成,但返回的数据未定义。Ajax调用 控制器方法 谁能告诉我为什么存在返回为未定义更新 正如下面所建议的,我将数据写入了控制台,它似乎返回了一个空字符串。因此,我想问题应该是更多的“为什么数据返回空?”通过complete选项指定的函数(原因很好:即使没有数据,也会调用它,因为有错误)。将完成:更改为成功: var req = $.ajax({ url: serviceURL,
我正在从控制器返回Json结果。
Ajax请求完成,但返回的数据未定义。
Ajax调用
控制器方法
谁能告诉我为什么
存在
返回为未定义更新
正如下面所建议的,我将数据写入了控制台,它似乎返回了一个空字符串。因此,我想问题应该是更多的“为什么数据返回空?”通过
complete
选项指定的函数(原因很好:即使没有数据,也会调用它,因为有错误)。将完成:
更改为成功:
var req = $.ajax({
url: serviceURL,
type: "POST",
data: JSON.stringify(param),
contentType: "application/json",
success: successFunc, // <=== Here
error: errorFunc
});
var req=$.ajax({
url:serviceURL,
类型:“POST”,
数据:JSON.stringify(param),
contentType:“应用程序/json”,
success:successFunc,//console.log(数据)
提供了什么?检查console.log(JSON.stringify(数据))或alert(JSON.stringify(数据))查看您得到了什么。若要检查您是否真的到达了CheckUser,请在方法的开头放置一个断点,以查看内部发生了什么。或者,更好的做法是,在函数中添加一个调试器;
,并学习在浏览器中调试JavaScript。@AndreiV:甚至不需要调试器;
,只需打开调试器并设置一个断点。@AndreiV:Chrome为我做的“愚蠢”的事情是它不允许我重写硬编码的调试器;
语句(例如,关闭它,因为我暂时不需要它)。真正的断点的好处是你可以控制它们。无论如何,它们都有自己的位置,我肯定会定期使用调试器;
。谢谢,这是有用的建议,但我仍然收到未定义的建议。@piggy:然后你会想在浏览器中使用调试器:检查数据,看看它是什么,查看“网络”或“网络”选项卡以查看来自服务器等的原始响应。在网络选项卡的“响应”下,我得到“此请求没有可用的响应数据”
[HttpPost]
public JsonResult CheckUser(string uname, string pass)
{
Boolean cont = true;
return Json(new { exists = cont });
}
var req = $.ajax({
url: serviceURL,
type: "POST",
data: JSON.stringify(param),
contentType: "application/json",
success: successFunc, // <=== Here
error: errorFunc
});