Fetch API を利用してフォーム データを送信する場合、考慮すべき主な形式は 2 つあります。
FormData を使用してリクエスト本文を作成する場合、データは自動的に multipart/form-data 形式で送信されます。これは FormData のデフォルトの動作であり、変更できません。
application/x-www-form-urlencoded 形式でデータを送信するには、次のようにします。いくつかのオプションがあります:
1. URL エンコードされた文字列:
fetch("api/xxx", {
body: "[email protected]&password=pw",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
method: "post",
});
2. URLSearchParams オブジェクト:
const data = new URLSearchParams();
data.append("email", "[email protected]");
data.append("password", "mypassword");
fetch("api/xxx", {
body: data,
method: "post",
});
URLSearchParams を使用する場合、正しいコンテンツ タイプが自動的に設定されるため、Content-Type ヘッダーを指定する必要はありません。
3. FormData からの URLSearchParams:
const data = new URLSearchParams(new FormData(formElement));
fetch("api/xxx", {
body: data,
method: "post",
});
このオプションを使用すると、FormData オブジェクトを直接渡して URLSearchParams オブジェクトを作成できます。ただし、ブラウザのサポートが制限されている場合があるため、使用する前に必ず十分にテストしてください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3