小编典典

JSONP跨源错误“不存在Access-Control-Allow-Origin标头”

ajax

我正在使用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发生相同的问题。

当输入地址栏时,一种这样的API也可以使用。

因此,经过大量搜索和查找,我是否需要将原点设置为*?我认为这更多是服务器方面的问题?

我也尝试过,?callback?但无济于事。

任何想法都将非常感谢。


阅读 256

收藏
2020-07-26

共1个答案

小编典典

上述资源支持JSONP,所以没有必要CORS …问题是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);
        }
    });
});

演示:小提琴

2020-07-26