Jquery ajax问题,继续将undefined作为结果值

时间:2016-11-21 03:19:25

标签: jquery json ajax

我是使用ajax和jquery的ajax包装函数的新手。试图从API中获取json并将结果附加到我正在构建的网站的html中。

这是我的代码:

$.ajax({
    type : 'GET',
    url : 'api/v1/get_profesors.php',
    success : function(data){                                           
        var content = 'Name : '+data.name ;
        content += ' Surname : '+data.surname ;
        content += ' Bio : '+data.bio ;
        content += ' Instrument : '+data.instrument ;
        $("#profesori").append(content);
    }
});

我得到的结果是名称:undefined姓:undefined生物:未定义乐器:未定义

哦,这是我从API收到的JSON的一部分:

{"id":7,"name":"adsssss","surname":"THERE I GO","bio":"Jupi","instrument":"Gitara","img":null}{"id":8,"name":"Andrija","surname":"Profesor","bio":null,"instrument":null,"img":null}

提前致谢。

4 个答案:

答案 0 :(得分:1)

首先确保在console.log(data)成功通话中使用ajax将JSON作为API的响应。

然后,您需要使用JSON.parse()

解析收到的JSON
 $.ajax({
     type : 'GET',
     url : 'api/v1/get_profesors.php',
     success : function(data){
         var data = JSON.parse(data);
         var content = 'Name : '+data.name ;
         content += ' Surname : '+data.surname ;
         content += ' Bio : '+data.bio ;
         content += ' Instrument : '+data.instrument ;
         $("#profesori").append(content);
     }
});

答案 1 :(得分:1)

在做这类事情时你必须记住几件事:

1。正如Shubham Khatri所建议的那样。在console.log(data)成功通话中使用ajax检查API响应。

2。您从api获得的回复是错误的。它应该是array of objectsobject of arrays

错误:

var data = {"id":7,"name":"adsssss","surname":"THERE I GO","bio":"Jupi","instrument":"Gitara","img":null}{"id":8,"name":"Andrija","surname":"Profesor","bio":null,"instrument":null,"img":null} 

更正:

var data = [
             {"id":7,"name":"adsssss","surname":"THERE I GO","bio":"Jupi","instrument":"Gitara","img":null},
             {"id":8,"name":"Andrija","surname":"Profesor","bio":null,"instrument":null,"img":null} 
           ];

3。ajax成功功能中,您必须loop data array,因为它中有两个对象。

for (var i in data) {
  console.log('Name : '+data[i].name);
}

输出

Name : adsssss
Name : Andrija

答案 2 :(得分:0)

请尝试使用data[0].name等。

答案 3 :(得分:0)

请使用ajax中的数据类型作为dataType:“json”,请参阅下面的示例。

$。AJAX({         类型:“POST”,         url:hb_base_url +“consumer”,         contentType:“application / json”,         dataType:“json”,         data:JSON.stringify({             first_name:$(“#namec”)。val(),             last_name:$(“#surnamec”)。val(),             电子邮件:$(“#emailc”)。val(),             mobile:$(“#numberc”)。val(),             密码:$(“#passwordc”)。val()         }),         成功:功能(响应){             的console.log(响应);         },         错误:函数(响应){             的console.log(响应);         } });