Fetch API を使用してフォーム データを「application/x-www-form-urlencoded」として送信するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-04 15:34:02
オリジナル
608 人が閲覧しました

How to Send Form Data as `application/x-www-form-urlencoded` with the Fetch API?

Application/x-www-form-urlencoded を使用した Fetch API によるフォーム データの投稿

フォームを送信するときに、フォーム データを送信する方法について疑問が生じることがあります。 Fetch API を使用してデータを取得します。デフォルトでは、FormData を使用して本文を送信すると、データは multipart/form-data として送信されます。ただし、データを application/x-www-form-urlencoded として送信する場合は、いくつかのオプションが利用可能です。

Multipart/Form-Data 形式の FormData

FormData の使用データを multipart/form-data 形式で送信するように自動的にロックされます。これを回避するには、FormData を使用するのではなく、URL エンコードされた文字列または URLSearchParams オブジェクトを手動で作成します。以下は、フォーム要素を反復処理して URLSearchParams オブジェクトを構築するコード スニペットです:

const data = new URLSearchParams();
for (const pair of new FormData(formElement)) {
    data.append(pair[0], pair[1]);
}

fetch(url, {
    method: 'post',
    body: data,
})
.then(…);
ログイン後にコピー

注: Content-Type ヘッダーを明示的に指定する必要はありません。

FormData を使用した URLSearchParams

もう 1 つの実験的なオプションは、URLSearchParams オブジェクトを作成し、値をループするのではなく、FormData オブジェクトを直接渡します:

const data = new URLSearchParams(new FormData(formElement));
ログイン後にコピー

このメソッドはブラウザーで実験的にサポートされていますが、使用する前に徹底的にテストすることをお勧めします。

以上がFetch API を使用してフォーム データを「application/x-www-form-urlencoded」として送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート