2016-11-21 70 views
1

我是使用ajax和jquery的ajax包裝函數的總新手。嘗試從API獲取json並將結果追加到我正在構建的網站的html中。Jquery ajax問題,不斷得到undefined作爲結果值

這裏是我的代碼:

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

這我越來越被名稱結果:未定義姓:未定義簡介:未定義的儀器:未定義

哦,這裏是我正在從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} 

在此先感謝。

回答

1

幾件事情要解析接收到的JSON你必須記住,在做這種類型的東西:

正如Shubham Khatri建議。通過在ajax成功調用中使用console.log(data)來檢查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} 
      ]; 

在你ajax成功的功能,你必須loopdata array,因爲它是有它的兩個對象。

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

輸出:

Name : adsssss 
Name : Andrija 
0

嘗試data[0].name等你的迴應。

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/評論/低質量帖/ 14352113) – Nikhil

+0

@indramurari你爲你的評論 –

1

首先請確保您通過在ajax成功調用中使用console.log(data)獲得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); 
    } 
}); 
0

請使用數據類型在阿賈克斯的數據類型: 「JSON」,請參見下面的例子。

$阿賈克斯({ 類型: 「POST」, 網址:hb_base_url + 「消費者」, 的contentType: 「應用/ JSON」, 數據類型: 「JSON」, 數據:JSON.stringify({ 姓氏:$(「#namec」)。val(), 姓氏:$(「#姓氏」).val(), 電子郵件:$(「#emailc」)。val(), mobile:$(「#numberc」)。val(), password:$(「#passwordc」).val() }), success:function(response){ console.log響應); }, error:function(response){ console.log(response); } });