我在显示页面中的某些 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"}
]}
页面上没有显示任何内容。
在 firebug 控制台上我收到此错误:
未声明 HTML 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则在某些浏览器配置中,该文档将呈现为乱码。页面的字符编码必须在文档或传输协议(protocol)中声明。
那里没有 json 数据的痕迹
我在做什么?
最佳答案
您不应该在页面加载后进行 document.write(这里肯定是这种情况)。
如果要将其写入页面,则需要创建 HTML 并附加它。只需替换 document.write:
$('body').append('<p>'+fbResults.cats[0].title+'</p>');
<小时/>
更新:
您的示例进行了完全限定的 URL 调用。该服务器与您运行页面的服务器完全相同吗?如果不是,XHR 只会处理该请求(有时不会告诉您)。如果需要跨域,则需要使用 JSONp。如果您在从网络提取数据的同时尝试在本地运行此程序,它就会崩溃。
关于javascript - JQuery JSON 数据不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11891228/