Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery getJSON未定义错误_Javascript_Jquery_Json - Fatal编程技术网

Javascript jQuery getJSON未定义错误

Javascript jQuery getJSON未定义错误,javascript,jquery,json,Javascript,Jquery,Json,好吧,我做了一些搜索和尝试,但没有运气。我希望这里有人能给我指出正确的方向。我有一个正在使用的JSON提要,它应该输出各种数据。目前,它只是返回所有变量的“未定义”响应。以下是我正在使用的JS: $("#loaduserdata").click(function(){ $("#userdata tbody").html(""); $.getJSON("trendFetch", function(data){ $.each(data.list, function(i

好吧,我做了一些搜索和尝试,但没有运气。我希望这里有人能给我指出正确的方向。我有一个正在使用的JSON提要,它应该输出各种数据。目前,它只是返回所有变量的“未定义”响应。以下是我正在使用的JS:

$("#loaduserdata").click(function(){
$("#userdata tbody").html("");
    $.getJSON("trendFetch", function(data){
            $.each(data.list, function(i, data){
                var jsondata = data.action;
                console.log (jsondata);
            });
     }
);
我不确定问题在哪里,因为console没有给我任何类型的错误或任何理由认为JSON格式不正确:

不管它值多少钱,下面是我用来生成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": []
}
}

在任何输出之前设置标题

header("Content-Type: application/json", true);
echo $resp;
应该是:

header("Content-Type: application/json", true);
echo $resp;

您需要在输出任何内容之前发送HTTP头。

如果您提供JSON响应会有所帮助

当我遇到这些类型的问题时,我通常会后退一步(在代码中)并更早地执行
console.log()。例如,
函数(数据){}
中的
console.log(数据)

我认为——从输出来看——你的问题是列表实际上不是一个列表。事实上,data.list是一个对象。因此,
.each()
将迭代各个项目(如列表id、标题等)。它们都没有
.action
属性


我看不到任何操作属性,因此无法提出解决方案建议。它可能在list对象中,但您仍然将其视为一个数组(好像它是
list:[{},{}]
而不是
list:{}
)。在这种情况下,您要么修复返回的JSON,要么去掉
$.each()
,只需
console.log(data.list.action)

穆萨就可以为我解决这个问题,所以万一有人在谷歌上搜索,问题是我在不需要的时候尝试使用$.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");

        }
);
$.getJSON(“trendFetch”),函数(数据){
var tblRow=
""
+“”+数据。列表。列表\u id+“”
+“”+数据。列表。标题+“”
+“”+数据.列表.说明+“”
+""
$(tblRow).appendTo(“#userdata tbody”);
}
);

为什么我认为Javascript的前两行毫无意义?是的,我清理了它。我按照您的要求进行了更改,但不幸的是,它没有解决问题。不管怎样,谢谢你的提示,无论如何它都需要正确格式化。@application.js的第64行是什么?第64行=console.log(jsondata);正如我向Cryptic提到的,我认为这个问题与PHP无关,因为当我在控制台中查看JSON时,它看起来不错。还有其他想法吗?@viablepath是的,我刚刚看到了图片,你能把JSON作为文本发布吗。当然,我刚刚把它添加到原始帖子中。谢谢@viablepath JSON响应中没有任何action属性,您想用什么数据做什么?我只想将它附加到一个div中,并在我的站点上显示它。不确定你所说的无操作属性是什么意思-抱歉?我只是在原始帖子中添加了JSON响应。这就是我在函数(数据)中添加console.log时得到的结果:是的。请看我添加的最后一段。你发布的JSON响应仍然是这样。操作(您正试图使用
数据访问该操作。操作
)不存在。你应该描述你想要的结果是什么。我想从列表数组中提取一些变量(list_id,title,description),并将它们显示在一个表中。
$.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");

        }
);