JQuery没有返回JSON文件的任何信息

时间:2013-07-19 14:21:38

标签: javascript jquery html getjson

我正在研究S3。在一个桶中我有一个browser.json文件,jquery.js和index.html。在我的index.html中,我正在编写一个读取我的JSON文件的脚本。这是我的代码看起来像......

!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
</head>
<body>
    <script>
        $.getJSON('https://s3.amazonaws.com/plxscreenshots/browser.json', function(data) {
            alert(data.date)
        });
    </script>
    <p> I hope this works!</p>
</body>

我仍然是html / javascript的新手,但我觉得这应该有效,不是,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

所以你有几个问题在这里发生。

  1. 首先,您有同源问题which has been addressed elsewhere
  2. 其次,您的JSON文件中的JSON格式不正确,
  3. 第三,你没有value1属性。
  4. 我希望您的JSON文件看起来更像这样:

    {"date": "2013-07-19", "value1": 5678 } 
    

    注意如何引用这两个键的日期?在JSON中,您必须引用任何不是数字,对象([]{})或布尔值(truefalse)的内容。还要注意没有尾随逗号?

    前两个问题会在您获得反馈之前导致错误,并且因为您没有错误处理程序,它将无声地失败(尽管希望您至少在JavaScript控制台中看到错误)。通过在函数末尾添加.error(function(a) { alert("error"); console.log(e); }),可以使这更容易一些。类似的东西:

    $.getJSON(<my-url>, function(data) {
         alert(data.value1)
    }).error(function(a) { alert("error"); console.log(e);});
    

答案 1 :(得分:0)

1)同源域策略不允许您使用AJax从其他域上的文件加载。

2)您的文件不包含JSON。它包含:

{date : 2013-07-19 , } 

JSON看起来像:

{"date": "2013-07-19"}