首页 > 解决方案 > 使用 JavaScript 和 API 密钥和基本身份验证访问 API (Billbee)

问题描述

最近我开始使用 API 和 JavaScript。现在,为了使用“真实”项目进行测试,我想访问存储在名为 Billbee 的商品管理系统中的数据。他们提供 API 并在此处提供简短文档:https ://app.billbee.io//swagger/ui/index

为了访问系统中的数据,Billbee 要求:

  1. 包含标识应用程序/开发人员的有效 API 密钥。它必须作为 HTTP 标头 X-Billbee-Api-Key 发送
  2. 以基本身份验证 HTTP 标头的形式包含具有 billbee 用户名和 api 密码的有效用户登录

我在其他一些没有 API 密钥和身份验证的 API 上尝试了我的代码,并且它有效。所以可能是认证有问题...

这是我的代码的相关部分:

var username = "***@***.de";
var password = "*******";
let xhr = new XMLHttpRequest();
xhr.open('GET', "https://app.billbee.io/api/v1/orders?tag=Picking", true);
xhr.setRequestHeader("Authorization", "Basic " + btoa(username + ":" + password));
xhr.setRequestHeader("X-Billbee-Api-Key", "D0A057BD-F2DA-4570-AE07-F051C8A967A6");
xhr.send();

在控制台中,我收到以下错误:

[错误] 预检响应不成功

[错误] XMLHttpRequest 无法加载https://app.billbee.io/api/v1/orders?tag=Picking由于访问控制检查。

[错误] 加载资源失败:预检响应不成功(订单,第 0 行)

有什么我错过的吗?

谢谢参观

标签: javascriptapixmlhttprequest

解决方案


Access-Control-Allow-Origin是一个响应头,表示它来自API。

浏览器会阻止您,因为出于安全原因,它通常允许同一来源的请求。您可能需要在billbee上进行一些配置。


推荐阅读