【问题标题】:Finding the error in my code for parsing JSON在我的解析 JSON 的代码中查找错误
【发布时间】:2014-06-28 08:18:03
【问题描述】:

我已经用谷歌搜索了几个小时并检查了文档,但我似乎找不到我的 jQuery 有什么问题...我正在尝试练习阅读本地 JSON 文件并在我的 HTML 正文中显示内容。

$(document).ready(function(){
    $.getJSON( "test.json", function( data ) {
        var items = [];
        $.each( data, function( key, val ) {
            items.push( "<li id='" + key + "'>" + val + "</li>" );
            console.log(data); 
        });
        $( "<ul/>", {
            "class": "my-new-list",
            html: items.join( "" )
        }).appendTo( "body" );
    });

});

这是同一文件夹中的实际 json 文件:

{
  "one": "Singular sensation",
  "two": "Beady little eyes",
  "three": "Little birds pitch by my doorstep"
}

当我打开 index.html 时,我只得到一个空白正文。 index.html 有

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/JavaScript" src="script.js"></script>  

所以我知道我的链接应该不是问题......

更新: 这是我现在从控制台获得的新输出:

 XMLHttpRequest cannot load file:///C:/Users/Steven/Desktop/meltApplication/test.json.    Received an invalid response. Origin 'null' is therefore not allowed access. 

【问题讨论】:

  • 如果你console.log(data) 看到预期的对象了吗?
  • 我没有看到预期的对象,事实上,我得到了错误 (?)。无法加载资源:net::ERR_FILE_NOT_FOUND 文件://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js 未捕获的 ReferenceError:$ 未定义 script.js:1
  • 当您在 URL 上省略协议前缀时,它使用与加载主页时相同的协议。因此,如果您在本地访问 index.html,则无法以这种方式访问​​ CDN,您必须从网络服务器获取 index.html
  • AJAX 使用 XHR 请求。一个 XML HTTP 请求。您不能通过来自浏览器的 HTTP 请求直接访问文件系统。这注定要失败。您需要一个合适的 Web 服务器,通过 HTTP 提供内容。
  • 通过搜索才发现,谢谢!

标签: javascript jquery html json


【解决方案1】:

//: 表示使用与当前页面相同的架构,因此如果您在本地打开文件(如果地址栏中的 URL 为 file://...),则您的架构为 file:/ /,因此脚本将按照错误指示在本地计算机上查找 JQuery。

按照@Melvinr 所说的正确加载 JQuery,然后您可以继续调试其余代码。

【讨论】:

  • 下一个问题是 Ajax 和“本地文件系统”不能混用。
【解决方案2】:

你没有添加http协议,所以这意味着浏览器会尝试在本地找到js

使用它来添加 jquery 引用

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

【讨论】:

  • 你没有添加http:协议,所以这意味着浏览器会尝试在本地查找js
  • 我的意思是在你的回答中;)仅代码的答案不好,它们应该附有解释。
  • 谢谢,已添加说明
猜你喜欢
  • 2015-03-06
  • 2014-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多