将API密钥设置为XMLHttpRequest的标头

3

我尝试使用Fortnite API(https://fortnitetracker.com/site-api),它要求我在请求头中传递API密钥。我尝试使用.setRequestHeader,但没有成功。

  function getInfo(){
  var xhr = new XMLHttpRequest();
  xhr.open('GET','https://api.fortnitetracker.com/v1/profile/pc/ninja',true);

  xhr.onload = function(){
    if(this.status == 200){
      console.log("Worked");
    } else {
      console.log(this.status);
    }
  }
  xhr.onerror = function(){
    console.log("Request Error");
  }
  
  // Fake API Key
  xhr.setRequestHeader("Authorization","12345678910");
  xhr.send();
}

希望有人能够帮助,感谢阅读。
2个回答

2
我认为您正在寻找这个:

我想你需要这个:

xhr.setRequestHeader('Authorization', 'Bearer ' + token);

当你开始使用API时,可以尝试使用REST客户端进行操作: 它们将帮助你了解这些请求应该是什么样子的。基本上,首先使用Postman/Insomnia弄清楚API需要什么,然后再编写代码。
希望这能有所帮助!

这个也不行,还是出现了同样的错误:“Preflight response is not successful”。不过还是谢谢你的回复和帮助! - mn11
你试过使用Postman了吗?你能在那里让它正常工作吗?如果不行的话,Fortnite的API文档应该有示例。如果Postman中工作顺畅,就在Chrome/Firefox的开发者工具中打开,并在网络选项卡中查找您看到的错误,您一定会找到解决方案的!最可能是与CORS有关,通常您可以通过头文件或代理来解决这个问题,如果您已经设置了Webpack,则需要使用代理。祝好运! - user9947879

1
对于API密钥身份验证,您应该这样调用它... .setRequestHeader "ApiKey", "MyKey"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接