Javascript 从API请求数据时出现此错误

Javascript 从API请求数据时出现此错误,javascript,jquery,json,api,Javascript,Jquery,Json,Api,我一直忙于从API中提取数据,但出于某种原因,它给了我这个错误,我不知道如何解决这个问题: 已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:缺少CORS标头“访问控制允许原点”) 所以我从中生成了这个url,我可以在该网站上看到战地1中的游戏内统计数据,但当我将url复制粘贴到web上时,它给了我一个错误的请求 那么有人知道如何解决这个问题吗?如果您使用AJAX,请尝试将数据类型设置为JSONP $.ajax({ url:"END POINT", dataType: 'jsonp

我一直忙于从API中提取数据,但出于某种原因,它给了我这个错误,我不知道如何解决这个问题:

已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:缺少CORS标头“访问控制允许原点”)

所以我从中生成了这个url,我可以在该网站上看到战地1中的游戏内统计数据,但当我将url复制粘贴到web上时,它给了我一个错误的请求


那么有人知道如何解决这个问题吗?

如果您使用AJAX,请尝试将数据类型设置为JSONP

$.ajax({
 url:"END POINT",
 dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
 success:function(json){       
     alert("Success");
 },
 error:function(){
     alert("Error");
 }      
});
$.ajax({
url:“终点”,

数据类型:'jsonp',//注意!jsonp如果服务器不允许,则无法发出跨域AJAX请求(有时可能会发出“飞行前”请求,详细说明)

如果您可以控制Web服务器,您可以做的是制作一个反向代理,以便使用本地URL访问远程数据

以下是使用Apache的方法(需要启用mod_代理):

这样,您可以使用以下URL调用API:


当然,您必须用自己的域替换yourserver.com。

我们需要更多信息,您使用什么来调用API?HTTPRequest,AJAX?当您发出跨域请求时,您被同一来源策略阻止,因为接收域在响应中不包含CORS头。JS中没有解决此问题的方法。您需要在服务器端发出请求instead@CuriousDev它是第三方API这只在API发送JSONP响应(不能直接与JSON互换)时才起作用。这不是一个自动修复程序。我假设它会,但你的权利是,如果它不起作用,它将不起作用。现在无法修复,我会看看我能做什么。谢谢你的帮助
< VirtualHost *:80 >
    ServerName www.yourserver.com
    ProxyPreserveHost On
    ProxyRequests On
    ProxyPass /bfapi/ https://battlefieldtracker.com/bf1/api/
    ProxyPassReverse /bfapi/ https://battlefieldtracker.com/bf1/api/
< /VirtualHost >
location /bfapi/ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass https://battlefieldtracker.com/bf1/api/;
}