Javascript FORTNITE API请求

Javascript FORTNITE API请求,javascript,html,api,Javascript,Html,Api,今天我开始学习使用api的js,我想问一下如何解决这个问题 我在fortnite tracker上注册并创建了api api类似于: GET https://api.fortnitetracker.com/v1/profile/{platform}/{epic-nickname} api密钥如下所示: TRN-Api-Key: xxxxxxx-xxxxxxxxxxx-xxxxxxxxxx 我在这里发现了一些我需要做的事情: var xhttp = new XMLHttpRequest();

今天我开始学习使用api的js,我想问一下如何解决这个问题

我在fortnite tracker上注册并创建了api

api类似于:

GET https://api.fortnitetracker.com/v1/profile/{platform}/{epic-nickname}
api密钥如下所示:

TRN-Api-Key: xxxxxxx-xxxxxxxxxxx-xxxxxxxxxx
我在这里发现了一些我需要做的事情:

var xhttp = new XMLHttpRequest();
xhttp.request("GET", "api", true);
xhttp.setRequestHeader('TRN-Api-Key' "KEY");
xhttp.send();
但当我这样做时,它会向我显示错误CORS,我不知道如何修复它


谢谢我认为您需要设置这些标题以允许cors来源

var xhttp = new XMLHttpRequest();
xhttp.request("GET", "api", true);
xhttp.setRequestHeader('Access-Control-Allow-Origin', '*');
xhttp.setRequestHeader('Access-Control-Allow-Headers', '*');
xhttp.setRequestHeader('Access-Control-Allow-Methods', '*');
xhttp.setRequestHeader('TRN-Api-Key' "KEY");
xhttp.send();

我没有找到这个api的解决方案,所以我寻找了其他api

我发现了Fortnite api

api名称为:

https://fortnite-public-api.theapinetwork.com/prod09/users/id?username=YOUR_NAME
示例名称api:

https://fortnite-public-api.theapinetwork.com/prod09/users/id?username=Ninja
给你。您可以使用platfrom(pc、ps4)复制该UID并将其放入此api

统计api示例:

https://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats?user_id=4735ce9132924caf8a5b17789b40f79c&platform=pc
JS代码:

/*您的uid和平台*/
让uid=“4735ce9132924caf8a5b17789b40f79c”;
让平台=“pc”;
/*fortnite api链接由提供*/
让statApi=”https://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats?user_id=“+uid+”&platform=“+platform;
httpRequestAsync(statApi,响应);
/*从API获取响应并定义变量*/
功能响应(响应){
log(“获取”+uid的统计信息);
让jsonObject=JSON.parse(响应);
//从api获取数据的示例
log(“名称:“+jsonObject.username”);
log(“Wins:+jsonObject.totals.Wins”);
log(“Kills:+jsonObject.totals.Kills”);
console.log(“K/D:+jsonObject.totals.kd);
log(“匹配:+jsonObject.totals.matchesplayed”);
log(“Winrate:+jsonObject.totals.Winrate+“%”);
};
/*发送xmlhhtprequest api*/
函数httpRequestAsync(api,回调){
var httpRequest=new XMLHttpRequest();
httpRequest.onreadystatechange=()=>{
if(httpRequest.readyState==4&&httpRequest.status==200)
回调(httpRequest.responseText);
}
httpRequest.open(“GET”,api,true);
httpRequest.send();
};

您不能从客户端js请求该API。使用服务器端代码。@jonaswillms,我该怎么做?这些头需要设置在服务器端(api.fortnitetracker.com),不在他的客户端JS中。它仍然显示:CORS策略已阻止从源站“”访问“”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许源站”标头。
https://fortnite-public-api.theapinetwork.com/prod09/users/public/br_stats?user_id=4735ce9132924caf8a5b17789b40f79c&platform=pc