3

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

2 回答 2

1

这是一个跨域问题。检查控制台。您需要在服务器端编写一个代理才能绕过。根据您的服务器端语言,您可以使用 Google 代理代码段。

于 2012-11-29T02:18:56.897 回答
0

您正在尝试执行跨浏览器请求:http ://en.wikipedia.org/wiki/Same-origin_policy 。

所以,getJSON失败并抛出异常..请参阅“请求的资源上不存在'Access-Control-Allow-Origin'标头”

发生这种情况时,您可以使用 CORS解决方法。

但是对于这个解决方法,您需要服务器启用 CORS,不幸的是 sourceforge 不是。

您可以通过检查响应标头来查看这一点。它有钥匙Access-Control-Allow-Origin:*

通常,您可以通过访问浏览器中的开发人员工具来执行此操作:
- 选择网络选项卡。
- 识别 JSON 页面并选择。
- 打开标题选项卡
- 转到响应标题部分。

看一个例子:

在此处输入图像描述

于 2014-02-28T21:03:44.523 回答