Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
正在学习jQuery和getJSON,但存在问题_Jquery_Json_Getjson - Fatal编程技术网

正在学习jQuery和getJSON,但存在问题

正在学习jQuery和getJSON,但存在问题,jquery,json,getjson,Jquery,Json,Getjson,我正在努力学习jQuery(现在是getJSON),但我的日子不好过。我已经搜索了一遍又一遍,似乎不明白为什么这不起作用 JSON: { "id" : 1, "type" : "upload", "who" : "chris ", "action" : "uploaded a wallpaper entitled:

我正在努力学习jQuery(现在是getJSON),但我的日子不好过。我已经搜索了一遍又一遍,似乎不明白为什么这不起作用

JSON:

            {
                    "id" : 1,
                    "type" : "upload",
                    "who" : "chris ",
                    "action" : "uploaded a wallpaper entitled: ",
                    "target" : "Blah blah blah",
                    "time" : "3 hours ago"
            }
这是我的jQuery代码

$(document).ready(function(){
    $('button').click(function() {
        $.getJSON("/js/activity.json", function(data) {
            $.each(data, function(key, value) {
                console.log(key + " : " + value);
            });
        });
    });
})   
当然,HTML只是一个简单的

<button>Test</button>
测试

为什么它不向控制台输出任何内容?如果我在
.getJSON
之后放了一个警报,它不会触发,但是如果我在它之前放了一个警报,你可以尝试一些事情。在回调函数(getJSON调用中的回调函数)中,只需放置一个console.log(“test”);看看你是否在回叫。您还可以在Firebug的.Net面板或Chrome Inspector的网络面板中查看JSON调用,以确保它正确启动并返回您的文件。例如,可能是服务器不知道如何正确返回JSON文件


如果它工作正常(即路径正确,正在读取文件),那么只需尝试记录data-console.log(data),并确保它显示的是JSON。然后,您可以担心在键之间循环,您不需要该步骤来查看它是否正常工作。

您的activity.json文件包含注释,请删除它们。注释不是JSON规范的一部分。

您是否尝试在getJSON调用中使用完整的URL?此外,结尾可能缺少分号。访问控制不允许使用源地址允许使用源地址。这就是我使用完整URL(我现在在自己的live站点上这样做)时得到的基本信息:确保使用了正确的路径,
'/js/activity.json'
重定向到Web服务器的DocumentRoot,而不是相对于使用js的文件。如果您希望它是相对的,请在开始时删除/,例如
'js/activity.json'
“js/activity.json”给出相同的结果(我在驱动器的根目录下运行它,因此/js/activity.json与js/activity.json相同)。此外,如果您使用Chrome,开发人员控制台(默认情况下为Ctrl+Shift+J)允许您记录请求,只需在窗口中单击鼠标右键并启用“LogXMLHttpRequests”。对于萤火虫来说可能也是如此,但不确定。