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

在API上执行jquery ajax请求时发生CORS错误

姚自强
2023-03-14
问题内容

我正在使用jQuery ajax将请求发送到某些API。由于有CORS政策,我在浏览器的控制台上收到了CORS错误

这是通过代码

$.ajax({
        url: sendHere,//api url
        type: 'GET',
        contentType: 'text/plain',
        crossDomain: true,
        beforeSend: function(xhr){
            xhr.withCredentials = true;
        },
    }).done(function (result) {

        console.log(result);

    }).error(function (err) {
        //console.log(err);
    });

错误

所请求的资源上存在“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“
http://www.mywebsite.com ”。

我尝试通过安装chrome扩展程序以启用允许跨源请求来解决此问题。此扩展以某种方式解决了我的问题,并从api得到了响应。但是安装扩展不是很好。

我也尝试使用JSONP(dataType:’jsonp’)发出请求,但api给出的响应不是json格式,它是字符串,因此会产生错误。

用JSONP编码

$.ajax({
        url: sendHere,//api url
        type: 'GET',
        crossDomain: true,
        dataType:'jsonp',
    }).done(function (result) {

        console.log(result);

    }).error(function (err) {
        //console.log(err);
    });

未捕获的ReferenceError:未定义E0002,其中“ E0002”是来自api的响应字符串

!!!请帮忙!!!


问题答案:

有2种情况-

  1. 如果您可以控制api代码,则

更改标题,并添加您的来源。

  1. 如果您无权更改来自api的CORS标头

您只有一个选择,可以用您喜欢的任何一种语言创建后端代码(您自己的api),以发出http请求并获取数据。现在使用您自己的api在前端获取数据。



 类似资料:
  • 我试图从dark sky api获取天气数据,但我一直得到一个cors错误。这是我的密码: 我收到一个错误“XMLHttpRequest无法加载”https://api.darksky.net/forecast/febb2871126cd24613f32a79c32d4158/38.5815719,-121.4943996。请求的资源上不存在“Access Control Allow Origin

  • ✔加200积分响应期权法 ✔将Access-Control-Allog-Headers,Access-Control-Allog-Methods,Access-Control-Allog-Origin方法响应头添加到OPTIONS ✔将Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Ori

  • 在做了一些研究后,我发现这是一个CORS问题。我正在使用谷歌应用程序引擎与Python。这个错误是我可以修复的,还是API的bug?我已经设法用这个API做了一个POST请求,没有问题。我已经阅读了很多关于CORS的信息,但还没有找到解决这个问题的方法。 下面是GET请求的Javascript代码,它只是从Trello API复制/粘贴的,所以我不确定哪里出了问题:

  • 我不能在GCF中启用CORS,ALLUSES已启用。下面是我在这个post命令之后的代码 我使用fetch和JSON作为主体进行POST调用。我的服务器应该通过执行reCaptcha验证来处理请求。然后根据reCaptcha得分进行响应。 这是我的电话 如有任何帮助,我将不胜感激

  • 尝试将数据发布到api时出错。下面是代码片段。期待早日得到帮助!谢谢 7组织。springframework。网状物客户ResourceAccessException:“jirasdtest.myoutotec.com/rest/api/2/issue/SD-1043/comment”的POST请求出现I/O错误:连接超时;嵌套异常为java。网SocketTimeoutException:连接在

  • 火狐: 跨来源请求被阻止:相同来源策略不允许读取位于[url]的远程资源(原因:缺少CORS头'Access-Control-Allog-Origin')。 铬: