我是使用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}
提前致谢。
答案 0 :(得分:1)
首先确保在console.log(data)
成功通话中使用ajax
将JSON作为API的响应。
然后,您需要使用JSON.parse()
$.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 objects
或object 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(响应); } });