在api上jquery ajax请求时出现CORS错误

我正在使用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的响应字符串

!!!请帮忙!!!

有两种情况 –

  1. 如果你可以控制api代码那么

    在标题中进行更改并添加原点。

  2. 如果您无法控制更改来自api的CORS标头

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

cors错误是浏览器为安全性而维护的跨源请求策略。 要解决您的问题,您必须在服务器编码中允许cors请求,或者如果您无法访问服务器api代码,则必须从服务器向api服务器进行api调用