从.json URL获取数据,并使用Javascript/JQuery以HTML形式显示
Getting data from a .json URL and displaying it in HTML with Javascript/JQuery
我正在尝试从以下位置获取json数据:http://api.dailymile.com/entries.json然后我想在表格中显示这些数据。当json链接指向我计算机上已经存在的文件时,以下代码有效,但当引用URL时无效。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"> </script>
<script>
$(function() {
var entries = [];
var dmJSON = "http://api.dailymile.com/entries.json";
$.getJSON( dmJSON, function(data) {
$.each(data.entries, function(i, f) {
var tblRow = "<tr>" + "<td>" + f.id + "</td>" + "<td>" + f.user.username + "</td>" + "<td>" + f.message + "</td>" + "<td> " + f.location + "</td>" + "<td>" + f.at + "</td>" + "</tr>"
$(tblRow).appendTo("#entrydata tbody");
});
});
});
</script>
</head>
<body>
<div class="wrapper">
<div class="profile">
<table id= "entrydata" border="1">
<thead>
<th>ID</th>
<th>UserName</th>
<th>Message</th>
<th>Location</th>
<th>Time</th>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</body>
</html>
对于它为什么不加载json数据的任何帮助,我们都将不胜感激。
正如aldux所建议的,跨域访问JSON的一种简单方法是使用JSONP。在您的情况下,服务器(dailymile.com)确实支持JSONP,所以您可以简单地添加一个?callback=?url的参数,即
var dmJSON = "http://api.dailymile.com/entries.json?callback=?";
$.getJSON( dmJSON, function(data) {
$.each(data.entries, function(i, f) {
var tblRow = "<tr>" + "<td>" + f.id + "</td>" + "<td>" + f.user.username + "</td>" + "<td>" + f.message + "</td>" + "<td> " + f.location + "</td>" + "<td>" + f.at + "</td>" + "</tr>"
$(tblRow).appendTo("#entrydata tbody");
});
});
这是因为AJAX同源策略不允许您从不同的域获取数据:
http://en.wikipedia.org/wiki/Same_origin_policy
试试这个:
http://en.wikipedia.org/wiki/JSONP
相关文章:
- Jquery html() 和保留元素名称
- 函数jquery.html()不提供数据属性集值
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- 使用jquery.html()获取元素本身的html
- 在iframe的情况下,jQuery html()将失败
- 如何在使用jQuery.html()时防止javascript执行
- jquery.html有效,但是.add不行;t
- jQuery.html()方法语法
- jQuery.html()赢得't替换javascript图表
- 如何在Jquery html elemet属性中附加字符串变量
- 等效于 AngularJS 中的 jQuery html()
- jQuery .html('
') 在 FF 和 Opera 中不起作用
- jquery html()编写函数以包含语义html元素
- jQuery Html负载剥离<表单>标签
- 用jQuery.html更新span内部html在IE中不起作用
- jquery html更新可以在电脑上使用,但不能在智能手机上使用
- 使用jQuery.html设置带有提交按钮的表单
- 将jquery HTML方法中的数据检索到数组中
- 来自对象的jQuery.html()返回未定义