使用 Fetch API 提交表单数据时,需要考虑两种主要格式:
使用FormData构造请求体时,数据会自动以multipart/form-data格式发送。这是 FormData 的默认行为,无法修改。
要以 application/x-www-form-urlencoded 格式发送数据,您有几个选项:
1。 URL 编码字符串:
<code class="javascript">fetch("api/xxx", { body: "[email protected]&password=pw", headers: { "Content-Type": "application/x-www-form-urlencoded", }, method: "post", });</code>
2. URLSearchParams 对象:
<code class="javascript">const data = new URLSearchParams(); data.append("email", "example@email.com"); data.append("password", "mypassword"); fetch("api/xxx", { body: data, method: "post", });</code>
请注意,使用 URLSearchParams 时无需指定 Content-Type 标头,因为它会自动设置正确的内容类型。
3.来自 FormData 的 URLSearchParams:
<code class="javascript">const data = new URLSearchParams(new FormData(formElement)); fetch("api/xxx", { body: data, method: "post", });</code>
此选项允许您直接传递 FormData 对象来创建 URLSearchParams 对象。但是,它的浏览器支持可能有限,因此请务必在使用之前对其进行彻底测试。
以上是如何使用 Fetch API 以不同格式发送表单数据?的详细内容。更多信息请关注PHP中文网其他相关文章!