formDate序列化

1.formData对象操作方法

get(‘key’) 获取表单对象属性的值
set(‘key’, ‘value’) 设置表单对象属性的值
delete(‘key’) 删除表单对象属性中的值
append(key,value) 在数据末尾追加数据
getAll(‘user’)获取取key为user的所有值 [‘a’,‘b’]

2.FormData作用

将form表单元素的name与value进行组合,实现表单数据的序列化
异步上传二进制文件

3.在vue中使用fromData格式传参

  1. 首先要创建fromData实例
  2. 然后将传入的参数添加到实例中
  3. 最后请求接口,将参数传入

例如:
vant组件 上传头像

<van-uploader :after-read="toImg">
    <div>拍照</div>
</van-uploader>




// 头像
toImg(item) {
   let data = new FormData();
   data.append("file", item.file);
   this.$API.imgs(data).then((res) => {
      console.log(res);
     });
   });
 },

原生写法 上传

<!-- 创建普通的html表单 -->
<form id="form">
	<input type="text" name="username">
	<input type="password" name="password">
	<!-- type 设置为button,不会触发form 提交 -->
	<input type="button" id="btn" value="提交">
</form>
<script type="text/javascript">
	// 获取按钮
	var btn = document.getElementById('btn');
	// 获取表单 必须为原生的dom元素
	var form = document.getElementById('form');
	// 为按钮添加点击事件
	btn.onclick = function () {
		// 将普通的html表单转换为表单对象
		var formData = new FormData(form);
		// 创建ajax对象
		var xhr = new XMLHttpRequest();
		// 对ajax对象进行配置
		xhr.open('post', 'http://localhost:3000/formData');
		// 发送ajax请求
		xhr.send(formData);
		// 监听xhr对象下面的onload事件
		xhr.onload = function () {
			// 对象http状态码进行判断
			if (xhr.status == 200) {
				console.log(xhr.responseText);
			}
		}
	}
</script>
上一篇:JQuery-传送formdata对象给后台-1.1


下一篇:vue+element+aixos上传文件formData形式传参