[英]jQuery getJSON Undefined Error
好吧,所以我做了一些搜索,沒有運氣。 我希望這里有人能指出我正確的方向。 我有一個我正在使用的JSON提要,它應該輸出各種數據。 目前,它只發送回所有變量的“UNDEFINED”響應。 這是我正在使用的JS:
$("#loaduserdata").click(function(){
$("#userdata tbody").html("");
$.getJSON("trendFetch", function(data){
$.each(data.list, function(i, data){
var jsondata = data.action;
console.log (jsondata);
});
}
);
我不確定問題出在哪里,因為控制台沒有給我任何錯誤或任何理由認為JSON格式不正確: http : //i.imgur.com/ySpdR.png
無論它值多少,這里是我用來生成JSON的代碼 - 也許這個問題就是這個問題?
$curl = curl_init();
$url = 'http://api.site.com';
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url
));
$resp = curl_exec($curl);
if($resp){
echo $resp;
header("Content-Type: application/json", true);
}
else {
echo 'Error - no response!';
}
curl_close($curl);
編輯 - 包括JSON輸出:
{
"status": "ok",
"list": {
"list_id": "2gz",
"title": "Test List",
"description": "description text...",
"image": [
"http://t2.gstatic.com/images?q=tbn:ANd9GcTz6_4aV6oHsI2kgJRRoSFCTWbew5ChTeBrAmXYh4Gez2J7usm8nwMOsA",
"http://cdn.list.ly/logos/default-list-image.png"
],
"views": 0,
"item_count": 1,
"curator_count": 1,
"follower_count": 1,
"listly_url": "http://api.list.ly/list/2gz-test-list",
"items": [
{
"item": {
"name": "Link 1",
"image": "http://t2.gstatic.com/images?q=tbn:ANd9GcTz6_4aV6oHsI2kgJRRoSFCTWbew5ChTeBrAmXYh4Gez2J7usm8nwMOsA",
"note": null,
"url": null,
"likes": 0,
"dislikes": 0
}
}
],
"suggested_items": []
}
}
echo $resp;
header("Content-Type: application/json", true);
應該:
header("Content-Type: application/json", true);
echo $resp;
您需要在輸出任何內容之前發送HTTP標頭。
在任何輸出之前設置標題
header("Content-Type: application/json", true);
echo $resp;
如果您提供了JSON響應,它會有所幫助。
當我遇到這些類型的問題時,我通常會先退一步(在代碼中)和console.log()
。 例如, function(data) {}
console.log(data)
。
我認為 - 從查看輸出 - 您的問題是列表實際上不是列表。 data.list實際上是一個對象。 因此.each()
將迭代各個項目(如list_id,title等)。 這些都沒有.action
屬性。
我看不到任何動作屬性,所以我無法提出解決方案建議。 它可能在列表對象中 - 但你仍然把它當作一個數組(就像它的list: [{}, {}]
而不是list: {}
)。 在這種情況下,您需要修復返回的JSON或刪除$.each()
,並且只需要console.log(data.list.action)
。
Musa能夠為我解決這個問題,所以如果有人谷歌,問題是我在不需要的時候嘗試使用$ .each。 如果有人感興趣,這是正確的代碼:
$.getJSON("trendFetch",function(data){
var tblRow =
"<tr>"
+"<td>"+data.list.list_id+"</td>"
+"<td>"+data.list.title+"</td>"
+"<td>"+data.list.description+"</td>"
+"</tr>"
$(tblRow).appendTo("#userdata tbody");
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.