我正在尝试解决有关JSON数据的问题(获取和发布)。贝娄我发布了我的代码不起作用,我不知道为什么?我查看了Firebug并说没关系:200 OK sourceforge.net 1.4 KB 216.34.181.60:80
我要做的是从sourceforge项目获取一些统计信息并将其放入div标签。
该链接是有效的json(http://sourceforge.net/projects/rdss/files/stats/json?start_date=2010-12-01&end_date=2012-11-24
)。
<html>
<head>...</head>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function() {
$(document).ready(function() {
$.getJSON("http://sourceforge.net/projects/rdss/files/stats/json?start_date=2010-12-01&end_date=2012-11-24", function(data) {
$.each(data.posts, function(i,data) {
var div_data = "<div>"+data.oses+"</div>";
$(div_data).appendTo("#testjson");
});
});
return false;
});
});
</script>
<div id="testjson"></div>
</body>
</html>
答案 0 :(得分:1)
这是一个跨域问题。检查控制台。您需要在服务器端编写代理才能到处走动。根据您的服务器端语言,您可以使用Google代理代码段。
答案 1 :(得分:0)
您正在尝试执行跨浏览器请求:http://en.wikipedia.org/wiki/Same-origin_policy。
因此,getJSON
失败并且发生异常..请参阅"No 'Access-Control-Allow-Origin' header is present on the requested resource"
如果发生这种情况,您可以解决using CORS。
但是对于这个变通工作,你need server be CORS-enabled,遗憾的是sourceforge不是。
您可以通过检查响应标头来查看。它有密钥Access-Control-Allow-Origin:*
。
通常,您可以通过访问浏览器中的开发人员工具来执行此操作:
- 选择“网络”选项卡
- 识别JSON页面并选择。
- 打开标题标签
- 转到“响应标题”部分。
查看示例: