🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

如何使用 JavaScript fetch()【初学者指南】

使用异步通信从API获取数据的基础知识

🌤 实时演示

👇 结果如下 👇

正在获取温度...


      <!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>显示温度</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      text-align: center;
      padding: 20px;
      background-color: #f0f0f0;
    }
    #weather {
      font-size: 1.5rem;
      color: #333;
    }
  </style>
</head>
<body>

  <h1>东京当前的温度</h1>
  <p id="weather">正在获取温度...</p>

  <script>
    async function getWeather() {
      try {
        const res = await fetch("https://api.open-meteo.com/v1/forecast?latitude=35.6895&longitude=139.6917¤t_weather=true");
        const data = await res.json();
        const temp = data.current_weather.temperature;
        document.querySelector("#weather").textContent = `东京的温度: ${temp}℃`;
      } catch (e) {
        document.querySelector("#weather").textContent = "🌧 获取失败";
        console.error("错误:", e);
      }
    }
    getWeather();
  </script>

</body>
</html>
    

🧩 fetch 的使用方法與常見錯誤處理

fetch() 是 JavaScript 中用於非同步取得資料的現代函式,例如本文展示的氣溫顯示,就是從 API 取得資料後更新至畫面上的範例。

常見的使用方式為先使用 const res = await fetch(...) 發送請求,接著用 const data = await res.json() 解析回傳的 JSON 資料。這是與公開 API 通訊時最基本的寫法。

🚨 常見錯誤與應對方式

若 URL 錯誤或網路出現問題,可透過 try...catch 包覆 fetch(),即使失敗也能顯示「取得失敗」等提示,避免用戶困惑。

若想實現即時更新,例如定時取得最新天氣資訊,可將 fetch() 搭配 setInterval() 來達成定時重複執行。

注意部分 API 需要 API 金鑰,這種情況下請在網址末尾加上 ?apikey=你的金鑰,具體格式請依各 API 提供者文件為準。