返回
别再为前后端请求数据发愁,有了FormData,让你轻松搞定
前端
2024-01-05 22:01:31
相信大家都遇到过这样的场景:我们需要在前端向后端发送数据,比如我们要把一个 {a:1,b:2}这样的对象发送到后端,但是我们想要以a=1&b=2的形式发送,那么就需要将这个对象转换成字符串,这无疑会给我们的代码增加复杂性。
此时,我们可以使用 FormData 对象。FormData 是 HTML5 中新增的一个接口,它允许我们轻松地创建表单数据,并将其发送给服务器。
使用 FormData 对象来发送数据非常简单,只需要几个步骤:
- 创建一个 FormData 对象。
- 使用 append() 方法向 FormData 对象中添加数据。
- 将 FormData 对象发送给服务器。
以下是具体示例:
const formData = new FormData();
formData.append('a', 1);
formData.append('b', 2);
fetch('/submit', {
method: 'POST',
body: formData,
});
这样,数据就会以a=1&b=2的形式发送给服务器。
FormData 对象还有其他一些非常方便的方法,比如:
- delete() 方法:从 FormData 对象中删除数据。
- has() 方法:检查 FormData 对象中是否包含某个数据。
- get() 方法:从 FormData 对象中获取某个数据。
- getAll() 方法:从 FormData 对象中获取所有数据。
- set() 方法:在 FormData 对象中设置某个数据。
这些方法都非常容易使用,可以帮助我们轻松地操作 FormData 对象。
现在,我们已经学会了如何使用 FormData 对象来发送数据,接下来我们再来看一下如何处理json、query等格式的数据。
对于json数据,我们可以使用JSON.stringify() 方法将其转换为字符串,然后发送给服务器。
const json = {
a: 1,
b: 2,
};
fetch('/submit', {
method: 'POST',
body: JSON.stringify(json),
headers: {
'Content-Type': 'application/json',
},
});
对于query数据,我们可以使用URLSearchParams对象来构建查询字符串。
const params = new URLSearchParams();
params.append('a', 1);
params.append('b', 2);
fetch('/submit', {
method: 'POST',
body: params.toString(),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
});
这样,数据就会以query的形式发送给服务器。
现在,我们已经学会了如何使用FormData对象来发送数据,以及如何处理json、query等格式的数据。希望这些知识能够对大家有所帮助。