什么是formData
可以用作:序列化表
使用:
var formData=new FormData()
定义一个表单,定义上name属性
<form id="myForm" action="" method="post">
<input type="text" name="name">名字
<input type="password" name="psw">密码
<input type="submit" value="提交">
</form>
获取表单:
var form = document.getElementById("myForm");
用表单来初始化:
var formData = new FormData(form);
得到表单中输入框的值:
var name=formDate.get('name') //获取名字输入框的值
var name=formDate.get('pwd')//获取密码输入框的值
不仅仅可以获取,也可以添加:
formData.append('test','centent') // 添加一个数据test,值为centent
可以修改:
formData.set('test','update') // 修改一个数据test,值为update
相应的方法还有delete has
用处
form-data格式一般是用来进行文件上传的;使用表单上传文件时,表单的enctype属性为:enctype="multipart/form-data"
。表单的该属性默认值为:application/x-www-form-urlencoded
ajax调用接口,将formData作为参数,传参的格式会自动转为form-data格式。
注:processData、contentType一定要关闭
$.ajax({
url: '/upload',
type: 'post',
processData: false, //必须 缓存关了
contentType: false, //必须 关闭 设置 数据格式(以 数据本身格式为准 xxxxx urlencoded)
// 用来处理上传二进制文件
data: formData,
success: function(res){
console.log(res);
if(res.code === 0) {
alert(res.msg);
}
}
})