向公共 API 发出请求时出现"No 'Access-Control-Allow-Origin' header"错误



这是我尝试向其发出请求的API的文档。 相关部分:

公共数据函数

股票

GET https://kiwi-coin.com/api/ticker/

返回 JSON 对象:

  • 最后 - 最后的比特币价格
  • 日期 - 价格日期
  • 最高价 - 过去 24 小时至今价格最高
  • 低 - 过去 24 小时至今价格低
  • VWAP - 过去 24 小时至今的成交量加权平均价格:VWAP
  • 交易量 - 最近 24 小时至今的交易量
  • 出价 - 最高买入订单
  • 卖出价 - 最低卖单

这是我的代码:

$.ajax({
type: "GET",
url: "https://kiwi-coin.com/api/ticker/",
});

是的,没有办法处理响应。暂时忽略这一点, 我只是专注于让请求工作。

这是我在控制台中遇到的错误:

无法加载 https://kiwi-coin.com/api/ticker/:请求的资源上不存在"访问控制允许源"标头。因此,不允许访问源"https://cloud-rooster.glitch.me"。

我做错了什么?此 API 适用于其他用户(例如机器人)。

我查看了具有类似标题的其他问题,但从我可以得出的答案来看,所有问题都涉及对服务器进行更改,在这种情况下这不是一个选项。

如果 API 服务器不支持 CORS,则有两个选项:

  1. JSONP.虽然你不能在没有足够许可的情况下制作跨源XHR,但你可以从任何地方包含一个JavaScript文件。如果 API 服务器返回类似callback({ json data ...})的内容,那么您可以使用数据而无需跳过箍。但是,KiwiCoin似乎不支持这一点。
  2. 从与客户端应用程序相同的源运行您自己的服务器(可能是托管 HTML/JS 文件的同一服务器),并在服务器上具有转发到 API 服务器的终结点。这是万无一失的。

我从查看您的代码中注意到的一件事是您对process.env的调用,这在浏览器中不存在。这可能是您需要尝试选项 #2 的迹象!

事实证明,我是从客户端(在浏览器中)而不是服务器端(在 Node.js 环境中)运行函数的。

咄!

问题解决了。

相关内容

最新更新