获取JSON数据并将其放入HTML标记中

时间:2012-11-24 15:00:48

标签: javascript jquery html json

我正在尝试解决有关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>

2 个答案:

答案 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页面并选择。
- 打开标题标签
- 转到“响应标题”部分。

查看示例:

enter image description here