angular - 外部货币转换器 api 在角度应用程序中不返回数据
问题描述
在服务中,我正在尝试进行转换。api调用结果什么都没有。在浏览器网络中,它显示状态码200,但method
OPTIONS,而不是GET。任何来源、方法和标头都允许使用 CORS。在这个OPTION调用之后应该有一个GET调用。但选项调用可能会说不调用获取。我如何弄清楚发生了什么?
我正在使用 Angular 5。这是我的代码:
getCurrencyWisePriceFromBDT(price: number, toCurrency: string): any {
let currencyConversionUrl = "https://free.currencyconverterapi.com/api/v6/convert?q=BDT_";
currencyConversionUrl = currencyConversionUrl + toCurrency;
console.log(currencyConversionUrl);
let rateInNewCurrency;
this.http.get < any > (currencyConversionUrl).subscribe(data => {
console.log(data);
rateInNewCurrency = data.val;
console.log(rateInNewCurrency);
return rateInNewCurrency * price;
});
}
在 Chrome 中显示此错误:
Failed to load https://free.currencyconverterapi.com/api/v6/convert?q=BDT_USD: Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
解决方案
getCurrencyWisePriceFromBDT(price: number, toCurrency: string): any {
const currencyFormat = `BDT_${toCurrency}`;
const currencyConversionUrl =`https://free.currencyconverterapi.com/api/v6/convert?q=${currencyFormat}`;
console.log(currencyConversionUrl);
let rateInNewCurrency;
this.http.get < any > (currencyConversionUrl).subscribe(data => {
console.log(data);
rateInNewCurrency = data.results[currencyFormat].val;
console.log(rateInNewCurrency);
return rateInNewCurrency * price;
});
rateInNewCurrency
0.01193
如果您通过50
并返回'USD'
,getCurrencyWisePriceFromBDT(50,'USD')
这是您要找的吗?如果是,那么当您订阅时,您的响应数据对象采用以下格式。
data.results.BDR_USD.val
基于传递给 URL 的货币。
推荐阅读
- android - ParseObject 中解析查询的问题
- python - 如何在 IF 语句后重复两个相同的过程?
- reactjs - 与道具挂钩
- javascript - 我可以将 html 元素传递给 jinja 变量吗?
- node.js - 如何编写 docker-compose 以在本地运行 npm 并在 docker 中运行 mongo
- python - 如何在python中使用带有数据框的文本分类
- haskell - 为所有高阶类型声明一个类型
- vba - 无法退出没有一堆错误的表单,因为必填字段是“空白”
- php - 在 if 语句中仅搜索数据库中某个日期的月份
- linux - 无法在 linux 上启动 postgres