[解決済み] fetchを使用してマルチパートフォームデータをPOSTするには?
質問
このようなURLを取得しています。
fetch(url, {
mode: 'no-cors',
method: method || null,
headers: {
'Accept': 'application/json, application/xml, text/plain, text/html, *.*',
'Content-Type': 'multipart/form-data'
},
body: JSON.stringify(data) || null,
}).then(function(response) {
console.log(response.status)
console.log("response");
console.log(response)
})
私のAPIでは、データは次のようなものであることを期待しています。
multipart/form-data
であることを期待しているので、私は
content-type
を使っています。しかし、それは私にステータスコード400の応答を与えている。
私のコードに何か問題があるのでしょうか?
どのように解決するのですか?
を設定している
Content-Type
になるように
multipart/form-data
としていますが、その後
JSON.stringify
を返し、ボディデータには
application/json
. コンテンツタイプのミスマッチがあります。
としてデータをエンコードする必要があります。
multipart/form-data
の代わりに
json
. 通常は
multipart/form-data
はファイルをアップロードするときに使われます。
application/x-www-form-urlencoded
(これは HTML フォームのデフォルトです) よりも少し複雑です。
の仕様は
multipart/form-data
は
RFC 1867
.
このようなデータを javascript で送信する方法については、以下のサイトを参照してください。 をご覧ください。 .
基本的な考え方は FormData オブジェクトを使用することです (IE < 10 ではサポートされていません)。
async function sendData(url, data) {
const formData = new FormData();
for(const name in data) {
formData.append(name, data[name]);
}
const response = await fetch(url, {
method: 'POST',
body: formData
});
// ...
}
について
この記事
確認する
ではなく
を設定すること。
Content-Type
ヘッダを設定する必要はありません。ブラウザが設定するのは
boundary
パラメータを含めて設定します。
関連
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] jQueryでページを更新するにはどうすればよいですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] フェッチする JSONデータをPOSTする
-
[解決済み] Web API メソッドに json の POST データをオブジェクトとして渡すにはどうすればよいですか?
-
[解決済み】fetch apiでフォームデータを投稿するには?
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] TypeScriptのdeclare classとinterfaceの違いとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] これは純関数ですか?