javascript - JSONP 跨域错误 'No Access-Control-Allow-Origin header is present'

原文 标签 javascript ajax json jquery

我正在使用 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” header 。因此,Origin 'null' 不允许访问。

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

当输入地址栏时,其中一种 API 也可以工作。

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

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

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

最佳答案

上述资源支持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);
        }
    });
});

演示:Fiddle

关于javascript - JSONP 跨域错误 'No Access-Control-Allow-Origin header is present',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518653/

相关文章:

jquery - 使用 jquery ajax 将表单数据和文件发布到 asp.net core rc2

json - 通过JSON对象的POST请求

javascript - 如何在运行其余代码之前让 getJSON 等待?

javascript - 如何使用 JavaScript 将 pdf 文件直接发送到打印机?

javascript - 如何将确认按钮添加到WebUI-Popover jQuery插件?

javascript - n秒后如何调用JavaScript函数

javascript - 让 Google Bot 检测 AJAX 内容

python - 如何保存/加载优化的 GPy 回归模型

javascript - KineticJS 转换图层以进行滚动

javascript - 在 jQuery Todo List App 中编辑和删除动态生成的列表项