javascript - 无法在jquery中加载json数据

标签 javascript ajax json jquery

我正在尝试从 twitter 获取 json 数据。 http://api.twitter.com/1/statuses/public_timeline.json 这是我的代码

<html>
<head>
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js"></script>
    <script>
        $(document).ready(function(){

            $("button").click(function(){
                $.getJSON("http://api.twitter.com/1/statuses/public_timeline.json",function(result){
                    $.each(result, function(i, field){
                        $("div").append(field + " ");
                    });
                });
            });
        });
    </script>
</head>
<body>

<button>Get JSON data</button>
<div></div>

</body>
</html> 

来自http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_ajax_getjson 但它不起作用!

最佳答案

您正在运行 same origin policy在 JavaScript 中。这基本上是说,您不能访问来自不同域的资源(在您的情况下,另一个域是 twitter.com)。

一种解决方案是使用 JSONP。微博API supports this .在您的情况下,您可以使用 jQuery 运行 JSONP 请求,如下所示:

$.ajax({
  url: "http://api.twitter.com/1/statuses/public_timeline.json",
  cache: false,
  dataType: 'jsonp',
  success: function( result ){
    $.each(result, function(i, field){
                        $("div").append(field + " ");
                    });
  }
});

此外,w3schools 不是可靠的信息来源。最好使用类似 Mozilla Developer Network 的东西.

关于javascript - 无法在jquery中加载json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13625776/

相关文章:

javascript - 如何检查两个对象属性是否匹配?

java - 如何强制在 primefaces 中重新加载页面?

javascript - DIV 在 html5 视频之上

sql - 提取为字符串时在 Presto 中处理不同的 json 格式?

c# - 序列化类的子集

javascript - 使用数组填充 Handlebars 模板

javascript - ajax 发布到 php 是空的

ajax - 没有ajax的爬行hashbangs

ajax - 如何在 AppHarbor 上接受 CORS AJAX 请求?

c# - .NET Core Web API 序列化问题