" No' Access-Control-Allow-Origin'报头"向公共API发出请求时出错

时间:2018-03-18 05:00:33

标签: api cors xmlhttprequest

这是我尝试发出请求的API the documentation。 相关部分:

  

公共数据函数

     

股票代码

     

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

     

返回JSON对象:

     
      
  • 最后 - 最后BTC价格
  •   
  • 日期 - 价格日期
  •   
  • 高 - 最后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适用于其他用户(例如机器人)。

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

2 个答案:

答案 0 :(得分:0)

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

  1. JSONP。虽然在没有足够许可的情况下无法制作跨源XHR,但您可以从任何地方包含JavaScript文件。如果API服务器返回类似callback({ json data ...})的内容,那么您可以使用数据而无需跳过箍。但是,似乎KiwiCoin不支持这一点。
  2. 从与客户端应用程序相同的源(可能是托管HTML / JS文件的服务器)运行您自己的服务器,并在服务器上具有转发到API服务器的端点。这是万无一失的。
  3. 我看到你的代码时注意到的一件事是你有process.env的电话,这在浏览器中是不存在的。这可能是你需要尝试选项#2的标志!

答案 1 :(得分:0)

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

咄!

问题解决了。