0

我无法从页面显示一些 jason。

数据在那里,但我认为它可能与这条线有关:

document.write(fbResults.cats[0].title);

这是完整的html源代码:

<!DOCTYPE HTML>
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script>

    $(document).ready(function() {
        $.getJSON('http://mydomain.com/api/get_cats', function(fbResults) {
            document.write(fbResults.cats[0].title);
        });
    });
</script>

</head>
<body>

</body>
</html>

这是它正在读取的数据:

{"cats":[

{"id":"1","title":"mytitle1","colour":"#EE297C"},
{"id":"2","title":"mytitle2","colour":"#EE412F"},
{"id":"3","title":"mytitle3","colour":"#F5821F"},
{"id":"4","title":"mytitle4","colour":"#00AEEF"},
{"id":"5","title":"mytitle5","colour":"#00B495"},
{"id":"6","title":"mytitle6","colour":"#006476"}

]}

它没有在页面上显示任何内容。

在萤火虫控制台我得到这个错误:

未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。

那里没有json数据的痕迹

我在做什么我是谁?

4

3 回答 3

5

您不应该在页面加载后 document.write (这里肯定是这种情况)。

如果要将其写入页面,则需要创建 HTML 并附加它。只需替换document.write:

$('body').append('<p>'+fbResults.cats[0].title+'</p>');

更新:

您的示例进行了完全限定的 URL 调用。该服务器与您从中运行页面的服务器完全相同吗?如果不是,XHR 只会接受请求(有时不会告诉你)。如果您需要跨域,则需要使用 JSONp。如果您在从网络上提取数据的同时尝试在本地运行它,它会中断。

于 2012-08-09T20:15:59.190 回答
0

试试这个

 $.each(fbResults.cats,function(index,item){
    document.write(item.title);       
  });

工作样本:http: //jsfiddle.net/zWhEE/8/

于 2012-08-09T20:18:46.690 回答
0

它似乎对我有用,请检查这个 http://jsfiddle.net/TxTCs/1/

于 2012-08-09T20:21:13.850 回答