我无法从页面显示一些杰森。
数据存在,但我认为这可能与此行有关:
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数据的痕迹
我在做什么?
答案 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);
});
答案 2 :(得分:0)
它似乎对我有用,请检查一下 http://jsfiddle.net/TxTCs/1/