我正在使用Ajax使用其API从Twitter获取数据。我正在尝试使用jsonp,从我所能看到和理解的角度来看,我认为我所做的一切都正确(显然不是)。
> <script > src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> > </script> > <script> > $(document).ready(function () { > $.ajax( { > type: 'GET', > datatype: 'jsonp', > data: {}, > crossDomain: 'true', > url: > "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?", > error: function(textStatus, errorThrown) { > alert("error"); > }, > success: function(msg) { > console.log(msg); > } > }); > }); > </script>
上面的代码在Chrome和Firefox中均生成错误 XMLHttpRequest无法加载 http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问原始“空”。
根据我的理解,我认为将&callback=?和设置为jsonp可以使此方法成功。更重要的是,我可以看到在提琴手中返回的JSON对象只是脚本没有处理。我尝试了多个API发生相同的问题。
&callback=?
jsonp
当输入地址栏时,一种这样的API也可以使用。
因此,经过大量搜索和查找,我是否需要将原点设置为*?我认为这更多是服务器方面的问题?
*
我也尝试过,?callback?但无济于事。
?callback?
任何想法都将非常感谢。
上述资源支持JSONP,所以没有必要CORS …问题是datatype: 'jsonp'它应该是dataType: 'jsonp'
datatype: 'jsonp'
dataType: 'jsonp'
$(document).ready(function () { $.ajax({ type: 'GET', dataType: 'jsonp', data: {}, url: "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?", error: function (jqXHR, textStatus, errorThrown) { console.log(jqXHR) }, success: function (msg) { console.log(msg); } }); });
演示:小提琴