0

我正在研究 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 还是很陌生,但我觉得这应该可以工作,但不是,有什么建议吗?

4

2 回答 2

1

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

  1. 首先,您有同源问题,该问题已在其他地方得到解决
  2. 其次,您的 JSON 文件中的 JSON 格式不正确,并且
  3. 第三,您没有 value1 属性。

我希望您的 JSON 文件看起来更像这样:

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

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

前两个问题甚至会在您获得反馈之前导致错误,并且因为您没有错误处理程序,它会默默地失败(尽管希望您至少在 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);});
于 2013-07-19T14:25:27.443 回答
0

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

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

{date : 2013-07-19 , } 

JSON 看起来像:

{"date": "2013-07-19"} 
于 2013-07-19T14:25:15.443 回答