JS

fetch

中級

読み方:フェッチ|英語:Fetch

サーバーからデータを取得するための関数で、APIとの通信に使うよ。いつ使う? 天気情報を取得したい、ユーザーデータをサーバーに送りたいなど、外部サービスとデータをやり取りするときに使うよ。間違いやすいポイント: fetchはPromiseを返すからawaitが必要。また、レスポンスをJSONにするにはawait res.json()が必要だよ。HTTPエラー(404等)でもcatchに入らないからres.okの確認も忘れずに。

やさしい説明

fetchは、サーバーからデータを取得したり送信したりするための関数です。Promiseを返すので、async/awaitで結果を受け取ります。

天気予報アプリがサーバーから天気データを取得する、SNSが新しい投稿を読み込む——こうした「サーバーとの通信」はすべてfetchで行います。

GETでデータ取得、POSTでデータ送信ができます。レスポンスは .json() でJavaScriptオブジェクトに変換します。

具体例・使い方

// データを取得(GET)
async function getUsers() {
  const res = await fetch("https://api.example.com/users");
  const data = await res.json();
  return data;
}

// データを送信(POST)
await fetch("/api/submit", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "太郎" })
});

いつ使う?

APIからデータを取得するとき、フォームのデータをサーバーに送信するとき、外部サービス(天気API等)と連携するときに使います。

間違いやすいポイント

❌ res.json()のawaitを忘れる

// ❌ awaitがないとPromiseが返る
const data = res.json(); // Promise{...}

// ✅ awaitで中身を取り出す
const data = await res.json(); // {name:"太郎"}

よくある疑問

Q: fetchの基本的な書き方は?

A: const res = await fetch('/api/data'); const data = await res.json(); の2ステップです。fetchでレスポンス取得→.json()でパースします。

Q: POSTリクエストを送るには?

A: fetch(url, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data) }) と書きます。

Q: CORSエラーが出たら?

A: 別ドメインへのリクエストがブロックされています。サーバー側でCORS許可が必要です。開発中はプロキシ設定で回避できます。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A