このエラーの原因と解決方法について、以下の方法を紹介します。
-
リクエストのメソッドをGETまたはHEADに設定する: エラーメッセージが示しているように、このエラーはGETリクエストやHEADリクエストでのみ発生します。Fetch APIを使用してリクエストを送信する前に、リクエストのメソッドを明示的にGETまたはHEADに設定してください。
fetch(url, { method: 'GET' }) .then(response => { // レスポンスの処理 }) .catch(error => { // エラーハンドリング });
-
リクエストのボディを削除する: GETリクエストやHEADリクエストでは、リクエストのボディ(ペイロード)は不要です。Fetch APIのリクエストオプションから
body
を削除するか、空のオブジェクトに設定してください。fetch(url, { method: 'GET', body: {} }) .then(response => { // レスポンスの処理 }) .catch(error => { // エラーハンドリング });
-
リクエストのボディを必要とする場合は別のメソッドを使用する: もしリクエストにボディを含める必要がある場合は、GETやHEAD以外のHTTPメソッド(例: POST、PUT)を使用してください。これにより、ボディを含めたリクエストを送信することができます。
fetch(url, { method: 'POST', body: JSON.stringify(data) }) .then(response => { // レスポンスの処理 }) .catch(error => { // エラーハンドリング });