首页 > 解决方案 > 外部货币转换器 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.

标签: angulartypescript

解决方案


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;
  });

rateInNewCurrency0.01193如果您通过50并返回'USD'getCurrencyWisePriceFromBDT(50,'USD')这是您要找的吗?如果是,那么当您订阅时,您的响应数据对象采用以下格式。 data.results.BDR_USD.val基于传递给 URL 的货币。

Stackblitz 链接


推荐阅读