質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

214閲覧

[Next.js] fetchのPOST通信時に415エラーを解消させたい

donut4

総合スコア170

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2024/09/29 14:08

編集2024/09/29 14:17

実現したいこと

JavaScript(Next.js)で自作アプリを作っています。
サーバーサイド言語とフロントを別々にして作っていて、フロント側でfetchでPOST通信したいのですが、415エラーでうまくいきません。

初歩的な質問になってしまうと思いますが
解消方法をご存じの方いたらよろしくお願いしまします。

発生している問題・分からないこと

先述したとおり、フロント側でfetchでPOST通信した際に、415エラーでうまくいきません。
ブラウザのエラー情報など一通り見たり、ヘッダー情報なども修正したりしましたが、それでもうまくいきませんでした。

ブラウザのDevツールのネットワーク内の情報↓
イメージ説明
※localhost:3000は同時にデバック起動させてるバックエンド側のサーバーです。

該当のソースコード

export function fetchAuth() { const formData = new FormData(); formData.append('name', 'tanaka'); // ひとまずサーバーへ達成させたいので仮に簡易的なフォーム情報を設定 // POSTリクエストのオプション const requestOptions = { method: 'POST', // POSTメソッド body: formData, // フォームデータを送信 cache: 'no-store', // キャッシュ無効化 }; // fetchを使ってリクエストを送信 // fetchを使ってリクエストを送信 fetch(`http://localhost:3000/aaa`, requestOptions) .then(response => { if (!response.ok) { //A throw new Error('Network response was not ok'); } return response.json(); // レスポンスをJSONとして解析 //B }) .then(data => { console.log('Success:', data); // 成功時のデータ処理 //C }) .catch(error => { console.error('Error:', error); // エラー発生時の処理 //D }); } ※ABCDにブレークポイントを設定してもデバック中はいずれの箇所も達しなかったです。

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ヘッダー情報など色々ためしたが、依然として415エラーでうまくいきません。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

415 Unsupported Media Typeエラーはリクエスト時のMIMEタイプ(Content-Typeヘッダに設定されている)がサーバー側が期待しているものと違うよ、ってことです。
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/415

FormDataだと、multipart/form-dataっていうMIMEタイプがリクエスト時に付与されてるはずです。
ですので、フロント側だけじゃなくてバックエンド側のコードも開示してもらわないと確かなことはわからないですね。

なのでとりあえず今の情報だけでの推測になりますが、今の段階で考えられそうなのは単にバックエンド側の設定ミス、或いは、送信時のデータ形式が間違ってる(例えばJSONで受け取るように設定してるのにFormDataを送ってしまってるとか)が考えられます。

投稿2024/09/29 14:40

FoxRefire

総合スコア146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

donut4

2024/09/30 14:06

ありがとうございます。 バックエンド側で受け取り形式の設定が間違っていました。 フロント側の形式と合わせてあげたら解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問