【问题标题】:JSON not parsing using .getJSONJSON 不使用 .getJSON 解析
【发布时间】:2010-02-11 06:11:50
【问题描述】:

在简单的 JSON 解析方面遇到问题,想知道是否有人可以快速发现此语法中的任何错误?

function getFavs() {
    $.getJSON('http://www.example.com/scripts/test.json', function(data) {
        $('#main-content').html(data.foo);  
    });
}

JSON文件如下:

{
 "foo": "The quick brown fox jumps over the lazy dog.",
 "bar": "ABCDEFG",
 "baz": [
     52,
     97
   ]
}

出于某种原因,它不喜欢“data.foo”位。我可以使用静态数据,但它绝对不是读取/解析 JSON 数据。不确定它是否与我使用的 URL 有关? (该文件已使用 JSONLint 进行验证)

感谢任何线索。

【问题讨论】:

  • URL和调用脚本是同一个域吗?

标签: javascript jquery json


【解决方案1】:

这已解决,似乎在本地运行,并且我认为调用实时服务器将是跨域的。现在运行 MAMP,它应该像上面那样工作。

谢谢!

【讨论】:

  • 这是正确的,因此是我最初的问题。发出的任何 Ajax 请求(像这样)都必须在同一个域中。
【解决方案2】:

看起来一切正常,但请检查该函数是否实际被调用。如果您有 Firebug,请尝试通过逐步运行代码来调试代码。如果不加几个alert("this code was run");在不同的地方(ajax前,ajax后,回调函数中)。

【讨论】:

  • 好电话,它肯定会在 data.foo 上绊倒(我正在尝试“在 ajax 之前”/“在 ajax 之后”警报,它没有返回“在 ajax 之后”。GET 请求返回 200OK不过,嗯
  • 请记住,ajax 是异步的,所以如果没有调用$.getJSON(); 之后的警报,那么您的 ajax 代码中有语法错误。应该在第一个警报之后,回调函数中的警报之前调用警报。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多