formData的使用

formData的使用

FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。如果表单enctype属性设为multipart/form-data ,则会使用表单的submit()方法来发送数据,从而,发送数据具有同样形式。

1.通过HTML表单创建FormData对象

可以将form的表单数据添加到FormData对象里,作为请求参数

<form action="" id="form">
    <input type="text" name="username"> // tom
    <input type="text" name="password"> // 123456
    <input type="button" value="提交" id="submit">
  </form>
  // 下面是点击button按钮发送请求,携带表单数据
  const form = document.getElementById('form')  // 获取表单元素
  this.submit.onclick = () => {
  // 构造一个包含Form表单数据的FormData对象,需要在创建FormData对象时指定表单的元素
     const formData = new FormData(form)
     // 发送请求,不用配置Content-Type,formData会自动添加
     this.request('POST', 'submitform.php', formData) // 这是一个封装的ajax请求, xhr.send(formData)
   }

结果
在这里插入图片描述

2.使用FormData对象上传文件

近期做了一个上传图片的,就使用了FormData对象
需要一个input的file类型,进行文件上传

<input type="file" id='inputNode'>
const inputNode = document.getElementById('inputNode')
// 事件
inputNode.onchange= function () {
	const file = e.target.files[0]  // 获取选择的file文件
      let form = new FormData() // 创建FormData对象
      form.append('Filedata', file)  // FormData 接口的append() 方法 会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键
      // 然后就是发请求上传选中的图片
      this.request('POST','https://test.dreamreader.qq.com/netc/upload',form) // 这是封装ajax请求,不用配置content-type,FormData会自动配置。 其中ajax中 xhr.send(form)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值