【问题标题】:Setting an API key as a header for a XMLHttpRequest将 API 密钥设置为 XMLHttpRequest 的标头
【发布时间】:2018-11-25 14:21:58
【问题描述】:

尝试使用 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();
}

希望有人能提供帮助,感谢阅读。

【问题讨论】:

    标签: javascript api xmlhttprequest http-headers request-headers


    【解决方案1】:

    我想你正在寻找这个:

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

    当您开始掌握使用 API 时,请使用 REST 客户端:

    他们会帮助您了解这些请求应该是什么样子。基本上,首先要弄清楚 API 对 postman/insomnia 的需求,然后才能编写代码。

    希望有帮助!

    【讨论】:

    • 这也不起作用,仍然出现相同的错误:“预检响应不成功”。感谢您的回复并尝试提供帮助!
    • 你试一试 Postman 吗?你能让它在那里工作吗?如果没有,fortnite 的 API 文档应该有示例。如果在邮递员中运行顺利,请在 chrome/firefox 中打开您的开发人员工具,然后用谷歌搜索您在网络选项卡中看到的错误,您肯定会找到解决方案!这很可能与 CORS 有关,如果您有包含 webpack 的设置,您通常使用标头或代理来解决它。祝你好运!
    【解决方案2】:

    对于 API 密钥身份验证,您可以这样称呼它... .setRequestHeader "ApiKey", "MyKey"。

    【讨论】:

      猜你喜欢
      • 2017-03-23
      • 2017-06-11
      • 2011-07-27
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2021-08-01
      相关资源
      最近更新 更多