我有一个ASP.NET MVC Web API,我从$ .ajax()方法调用。从我的API返回正确的JSON,但无法访问该对象。尝试记录“名称”的值时,我的控制台收到的错误是:
未捕获的TypeError:无法读取未定义的属性“名称”
JSON:
[{"id":2,"Name":"thom","Picture":"thom.jpg","About":"I'm a guy. This is my profile. Now quit staring and get out of here.","Location":"London"}]
jQuery的:
$.ajax({
cache:false,
type: 'GET',
dataType: 'json',
url: 'http://localhost:3235/Users/searchUsers?callback=?&searchString=' + searchString,
complete: function (data) {
console.log(data[0].Name);
}
});
任何帮助将不胜感激。谢谢!
答案 0 :(得分:9)
我认为您的意思是使用success
功能。 complete
函数不会将data
作为参数。
答案 1 :(得分:4)
来自the docs:
完成
类型:功能( jqXHR jqXHR ,String textStatus)
一个功能 在请求完成时调用(成功和错误之后) 回调被执行)。该函数传递了两个参数:The jqXHR(在jQuery 1.4.x,XMLHTTPRequest中)对象和一个字符串 对请求的状态进行分类(“成功”,“未修改”, “错误”,“超时”,“中止”或“parsererror”)。
该方法的第一个参数是不接收的数据。您可以通过jqXHR
对象获取它,但我认为您不需要使用此选项。请改用success
:
成功
类型:功能( PlainObject数据,String textStatus,jqXHR jqXHR)
如果请求要调用的函数 成功。该函数传递三个参数:返回的数据 来自服务器,根据dataType参数格式化;一个 描述状态的字符串;和jqXHR(在jQuery 1.4.x中, XMLHttpRequest)对象。
答案 2 :(得分:1)
在完成服务调用之后,它会完全触发,并且它不包含来自服务响应的数据。
使用
$.ajax({
url:'ur url',
type:'GET'
success:function(data){
// way to acces ur object code goes here
console.log(data[0].Name);
},
error:function(){
// Error handling
}
});
快乐编码