You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Fetch API获取外汇汇率后显示undefined的问题求助

问题解决:外汇API数据显示undefined的修复

核心错误原因

你对API返回的结构理解有误:

  • 你在displayData函数里把参数命名为rates,但实际fetch返回的是完整的响应对象(包含success、base、rates等顶级字段),不是直接的汇率对象。
  • 你试图访问rates.EUR,但EUR汇率实际嵌套在响应对象的rates属性里,正确路径是response.rates.EUR。

修改后的JavaScript代码

var EURUSD = document.querySelector("#EURUSD");
let url = 'https://api.exchangeratesapi.io/v1';

function params(paramsObj) {
    return new URLSearchParams({
      access_key: '<added my unique API key here',
      ...paramsObj
    });
}

function getLatest(options) {
  fetch(`${url}/latest?${params(options)}`)
    .then(res => res.json())
    .then(displayData);

    // 修改参数名为response,明确这是完整响应对象
    function displayData(response) {
        console.log(response);
        // 先检查rates和EUR字段是否存在,避免潜在报错
        if (response.rates && response.rates.EUR) {
            // 正确访问USD兑EUR的汇率
            EURUSD.innerText = `1 USD = ${response.rates.EUR} EUR`;
        } else {
            EURUSD.innerText = "无法获取EUR汇率数据";
        }
    }
}

getLatest({base: 'USD'});

额外说明

从你控制台的返回数据来看,base设为USD时,response.rates.EUR的值就是1美元兑换欧元的汇率,这样显示更直观。如果需要欧元兑美元的汇率,可以把base改成EUR,然后取response.rates.USD。

内容的提问来源于stack exchange,提问作者ross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:43:16