gpt4 book ai didi

javascript - Binance API 和 angular 4 httpClient

转载 作者:太空狗 更新时间:2023-10-29 17:39:05 30 4
gpt4 key购买 nike

我对加密市场币安有疑问。他们有公共(public) API,我可以用 Angular 来创建交易应用程序。

但是我遇到了一些麻烦。在 chrome 中使用该链接我得到 json 结果。 https://api.binance.com/api/v1/exchangeInfo

但是使用 angular 4 httpClient:

this.http.get('https://api.binance.com/api/v1/exchangeInfo').subscribe(res => console.log(res));

我有错误:跨源请求被阻止:同源策略不允许读取位于 api.binance.com/api/v1/exchangeInfo 的远程资源。 (原因:缺少 CORS header “Access-Control-Allow-Origin”)

这是行不通的。我不明白,为什么我不能在 Angular 应用程序中使用该 API? https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md

我该怎么办?我应该这样设置标题吗:

getMarkets() {
const headers = new HttpHeaders();
headers.set('Content-Type', 'application/json');
headers.set('Accept', 'application/json');
headers.set('Access-Control-Allow-Headers', 'Content-Type');
headers.set('Access-Control-Allow-Origin', '*');

const path = 'https://api.binance.com/api/v1/exchangeInfo';
return this.http.get(path, {headers: headers});
}

提前致谢

最佳答案

你不能直接使用它,Binance API 不设置 CORS header ,因此 Chrome 和所有主流浏览器都会阻止请求。还有一点,但本质上,需要启用 CORS 支持的 api 服务器应该将 Access-Control-Allow-Origin 设置为 * 或单个域 www.example.com,这允许浏览器阻止站点上的恶意代码调用和读取来自您可能登录的其他站点的某些数据的响应(例如:银行信息)您可以阅读更多相关信息 here

一个可能的解决方案是拥有自己的服务器来代理对 binance 的调用

如果您要进行测试,另一种解决方案是使用支持 CORS 的扩展,例如 this one

更新:如果满足您的数据需求,您还可以使用 websocket API docs

更新 2:这是一个很好的 stackoverflow question在cors上

旁注:如果您银行的 API 服务器将 Access-Control-Allow-Origin 设置为 *,则更改银行 :)

关于javascript - Binance API 和 angular 4 httpClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202982/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com