将 API 密钥设置为 XMLHttpRequest 的标头
Posted
技术标签:
【中文标题】将 API 密钥设置为 XMLHttpRequest 的标头【英文标题】:Setting an API key as a header for a 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();
希望有人能提供帮助,感谢阅读。
【问题讨论】:
【参考方案1】:我想你正在寻找这个:
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
当您开始掌握使用 API 时,请使用 REST 客户端:
https://www.getpostman.com/ https://insomnia.rest/他们会帮助您了解这些请求应该是什么样子。基本上,首先要弄清楚 API 对 postman/insomnia 的需求,然后才能编写代码。
希望有帮助!
【讨论】:
这也不起作用,仍然出现相同的错误:“预检响应不成功”。感谢您的回复并尝试提供帮助! 你试一试 Postman 吗?你能让它在那里工作吗?如果没有,fortnite 的 API 文档应该有示例。如果在邮递员中运行顺利,请在 chrome/firefox 中打开您的开发人员工具,然后用谷歌搜索您在网络选项卡中看到的错误,您肯定会找到解决方案!这很可能与 CORS 有关,如果您有包含 webpack 的设置,您通常使用标头或代理来解决它。祝你好运!【参考方案2】:对于 API 密钥身份验证,您可以这样称呼它... .setRequestHeader "ApiKey", "MyKey"。
【讨论】:
以上是关于将 API 密钥设置为 XMLHttpRequest 的标头的主要内容,如果未能解决你的问题,请参考以下文章