【问题标题】:$.getjson not working / json storage$.getjson 不工作 / json 存储
【发布时间】:2015-06-21 20:47:12
【问题描述】:

我正在尝试对我的域中的一个页面进行 getJSON 调用,该页面只是一个 json 数组,给定我网页中的脚本,它不会返回任何内容:

<script>
      $('#genButton').click(function() {
        console.log("click");
        $.getJSON("http://mygithub.github.io/repository/quotedb.json", function(data){
          console.log("executing");
          var entry = data[Math.floor(Math.random()*data.length)];
          console.log(entry);
          $("#quoteDisplay").text(entry);
        }).fail(function() { 
          console.log( "error" ); 
        });
      })
</script>

单击按钮时,控制台会记录“单击”,但不会记录“执行”,也不会记录与 getJSON 相关的任何错误。调试器也不会在 getJSON 函数中暂停。

我的问题是,1.quotedb.json 实际上是一个只有一个 json 数组的网页是否有效?或者页面是否需要以某种方式进行注释,以便 getJSON 请求知道从哪里获取 json? 2. 如果 (1) 没问题,那么您还有什么其他原因可以看出为什么 getJSON 返回函数没有出现任何内容?

json 又是一个 json 对象数组,格式为:

{
  "character": ""
  "quote": ""
}

编辑

使用编辑后的代码,它现在从 $.getJSON 调用的 .fail() 方法中输出“click”和“error”。

我尝试删除 ?callback?如下所示的 url 部分,这不起作用。

我的网址的/repository/ 部分似乎是访问该文件所必需的。

【问题讨论】:

  • 在您的 javascript 控制台的网络选项卡中对请求的响应是什么?
  • 处理错误,而不仅仅是成功。答案可能就在那里。
  • @bhspencer,谢谢!!我没有意识到有一个网络选项卡,但这帮助我确定请求没问题,但是 json 格式略有错误并且被读入为一堆格式错误的对象。一旦我修复了 json 数组,这一切都奏效了

标签: javascript jquery json


【解决方案1】:

尝试在url 末尾不使用?callback=?,请参阅jQuery.getJSON()

JSONP

如果 URL 包含字符串 "callback=?"(或类似的,定义为 服务器端 API),请求被视为 JSONP。见 有关更多详细信息,请在 $.ajax() 中讨论 jsonp 数据类型。

【讨论】:

  • @guest271314 提供的答案应该可以解决问题。当我使用自己的 GitHub 页面站点进行测试时,在根目录中使用 JSON 文件,我不需要 @rzs 提供的 URL 的 /repository/ 部分。您应该能够通过在浏览器中点击正确的 url 来验证 JSON 文件的正确服务,或者:http://mygithub.github.io/repository/quotedb.json 或者可能是 http://mygithub.github.io/quotedb.json
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多