从API获取数据CORS
问题描述:
我试图从不支持CORS的服务器获取json数据。我读了JSONP是那种stituation的解决办法,但我仍然不能使它发挥作用: 我的代码:从API获取数据CORS
var headers = {
'Authorization': 'Bearer ' + 'token',
'Accept': 'application/json'
};
function myCallbackFunction(data){
$('body').text(data.response);
}
$.ajax({
type: "GET",
headers : headers,
url: "https://site/api/etc",
dataType: "jsonp",
success: function(data){console.log(data);},
jsonp: false,
jsonpCallback : "myCallbackFunction",
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
我得到这个
error: Uncaught SyntaxError: Unexpected token :
我知道那是因为服务器返回一个JSON数据,但我不知道如何纠正,因为如果改变的数据类型为JSON,我收到了CORS相关的错误:
XMLHttpRequest cannot load https://site/api/1.0/etc . Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://site ' is therefore not allowed access.
这意味着CORS不是在服务器端支持但我使用邮递员它的作品,我不明白。 我已经尝试了很多其他的东西,但可以得到的数据。 请帮忙。 谢谢。 PS:我一个Tomcat服务器下很
答
我就放什么工作对我来说在这里: 所以我所做的是使用“okhttp”,而不是一个Ajax调用的这种方式创建一个休息控制器不会有是一个创建问题的上下文,然后检索数据并用js处理它。