JSONP交叉原始错误'No Access-Control-Allow-Origin标头存在'

Cor*_*rey 9 javascript ajax jquery json

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

以上代码在Chrome和Firefox中都会生成错误XMLHttpRequest无法加载http://twitter.com/status/user_timeline/padraicb.json?count=10&callback= ?.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.

从我的理解,我认为拥有&callback=?和设置类型jsonp将允许这成功.更重要的是,我可以看到在fiddler中返回的JSON对象,它只是没有被脚本处理.我尝试了多个API,同时出现同样的问题.

当输入地址栏时,一个这样的API也可以工作.

所以我经过广泛的搜索和寻找后,我需要一些如何设置原点*?我认为这更像服务器端问题?

我也试过?callback?但无济于事.

任何想法都会很棒,谢谢.

Aru*_*hny 18

所述资源支持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);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

演示:小提琴