首页  >  文章  >  web前端  >  如何使用 Fetch API 以不同格式发送表单数据?

如何使用 Fetch API 以不同格式发送表单数据?

Susan Sarandon
Susan Sarandon原创
2024-11-03 03:43:31701浏览

How do you send form data with Fetch API in different formats?

使用 Fetch API 发布表单数据

使用 Fetch API 提交表单数据时,需要考虑两种主要格式:

Multipart/ Form-Data

使用FormData构造请求体时,数据会自动以multipart/form-data格式发送。这是 FormData 的默认行为,无法修改。

Application/x-www-form-urlencoded

要以 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn