1

我有一个从 $.ajax() 方法调用的 ASP.NET MVC Web API。我的 API 返回了正确的 JSON,但无法访问该对象。尝试记录“名称”的值时在我的控制台中收到的错误是:

未捕获的类型错误:无法读取未定义的属性“名称”

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

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

4

3 回答 3

9

我认为您的意思是使用该success功能。该complete函数不data作为参数。

于 2013-05-02T15:41:54.880 回答
4

文档

complete
类型:Function( jqXHR jqXHR , String textStatus )
请求完成时调用的函数(在执行成功和错误回调之后)。该函数获得两个参数:jqXHR(在 jQuery 1.4.x 中,XMLHTTPRequest)对象和一个对请求状态进行分类的字符串(“成功”、“未修改”、“错误”、“超时”、“中止”或“解析器错误”)。

该方法的第一个参数不是接收到的数据。您可以通过jqXHR对象获得它,但我认为您确实不需要使用此选项。改用success

success
类型:Function( PlainObject data , String textStatus, jqXHR jqXHR )
请求成功时调用的函数。该函数获得三个参数: 从服务器返回的数据,根据 dataType 参数格式化;描述状态的字符串;和 jqXHR(在 jQuery 1.4.x 中,XMLHttpRequest)对象。

于 2013-05-02T15:45:51.630 回答
1

ya complete 在进行服务调用后触发,并且它不包含来自服务响应的数据..

利用

$.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
}
});

快乐编码

于 2013-05-03T05:57:28.227 回答