意味
リクエストは成功し、返すボディはありません。ヘッダーで新しい ETag などのメタデータを伝えることはできます。
よくある原因
- DELETE が成功した
- PUT や PATCH が変更を保存し、リソースを返さない
- CORS プリフライトやビーコンのエンドポイントが応答した
対処法
クライアント・閲覧者の場合
ボディを解析しようとしないでください。204 で response.json() を呼ぶと例外になります。読む前にステータスを確認します。
サイトや API の運営者の場合
204 にボディを付けてはいけません。更新後のリソースが必要なら JSON 付きの 200 を返します。
レスポンス例
HTTP/1.1
HTTP/1.1 204 No Content
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx 仕様
よくある質問
› 204 で response.json() が失敗するのはなぜ?
解析するボディがないからです。json() を呼ぶ前に response.status === 204(またはコンテンツ長)を確認します。
› DELETE は 204 と 200 のどちら?
報告することがなければ 204、削除した項目や確認メッセージなどのボディを返すなら 200 です。