返回JSON对象但无法通过$ .ajax()访问

时间:2013-05-02 15:37:56

标签: javascript ajax json jquery

我有一个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);
            }
        });

任何帮助将不胜感激。谢谢!

3 个答案:

答案 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
}
});

快乐编码