当前位置: 首页 > 面试题库 >

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

邵锐
2023-03-14
问题内容

我正在使用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?但无济于事。

任何想法都将非常感谢。


问题答案:

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

演示:小提琴



 类似资料:
  • 问题内容: 我正在尝试获取新闻网站的供稿。以为我会使用Google的feed API将feedburner供稿转换为json。以下网址将以json格式从Feed中返回10个帖子。http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/mathrubhumi 我用下面的

  • 在我的Angular应用程序中,当我需要从API调用一个带有基本身份验证的GET时,我在JS控制台中得到以下错误: CORS策略阻止从来源'http://localhost:4200'访问位于'***********'的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上没有'Access-Control-Alloc-Origin'标头。

  • 问题内容: 我已经集成了带角度应用程序的按键斗篷。基本上,前端和后端都在不同的服务器上。后端应用程序在Tomcat 8上运行。前端应用程序在JBoss欢迎内容文件夹上运行。 角度配置 请求标题 Web控制台错误。 后端的Cors筛选器 问题答案: 我与KeyCloak和CORS以及所有这些都进行了大约两个星期的斗争,这是我的解决方案(针对keycloak 3.2.1): 这全部与配置KeyCloa

  • Access-Control-Allow-Origin响应 header 指示是否该响应可以与具有给定资源共享原点。 Header type Response header Forbidden header name no 语法 Access-Control-Allow-Origin: *Access-Control-Allow-Origin: <origin> 指令 * 对于没有凭据的请求,服务

  • 问题内容: 我正在使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 不久前,我写了一篇有关此问题的文章Cross Domain AJAX 。 如果

  • 我知道这以前被解决过很多次。但是我可以在响应中看到,标题上已经有Access-Control-Allog-Origin。 Accept:// Accept-Encoding:GZIP、deflate、sdch、br Accept-Control-Request-Headers:X-AN-WebService-IdentityKey Access-Control-Request-Method:POS