JQuery JSON数据无法显示

时间:2012-08-09 20:13:06

标签: javascript jquery json

我无法从页面显示一些杰森。

数据存在,但我认为这可能与此行有关:

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"}

]}

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

在firebug控制台上我收到此错误:

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

那里没有json数据的痕迹

我在做什么?

3 个答案:

答案 0 :(得分:5)

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

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

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

更新

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

答案 1 :(得分:0)

试试这个

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

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

答案 2 :(得分:0)

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