FormData 接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用 XMLHttpRequest.send() 方法送出,本接口和此方法都相当简单直接。
- 创建FormData 对象
const formData = new FormData();- 返回在
FormData对象中与给定键关联的第一个值。formData.get("name"); // 获取key为name的第一个值 - 返回一个包含
FormData对象中与给定键关联的所有值的数组。formData.getAll('name'); // 获取key为name的所有值,返回值为数组 - 向
FormData中添加新的属性值,FormData对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在则新增一项属性值。formData.append('name':'李四'); // 在表单末尾追加key为name值为李四的数据 - 从 FormData 对象里面删除一个键值对。
formData.delete('name') // 删除表单里的name 属性 - 返回一个包含所有键值对的
iterator对象。formData.append('name','张三'); formData.append('age',20); formData.append('sex','man'); const formDataEntries = formData.entries() // 生成一个iterator formDataEntries.next() // {done:false,value:['name','张三'] formDataEntries.next() // {done:false,value:['age',20] formDataEntries.next() // {done:false,value:['sex','man'] formDataEntries.next() // {done:true,value:undefined} FormData.has()返回一个布尔值表明FormData对象是否包含某些键。formData.append('age':20) formData.has('age') // true formData.has('sex') // false- 返回一个包含所有键的
iterator对象。formData.append('name','张三'); formData.apend('age',24); const keys = formData.keys(); keys.next() // {done: false, value: "name"} keys.next() // {done: false, value: "age"} keys.next() // {done: true, value: undefined}FormData.values() - 返回一个包含所有值的
iterator对象formData.append('name','张三'); formData.apend('age',24); const values= formData.values(); values.next() // {done: false, value: "张三"} values.next() // {done: false, value: "20"} values.next() // {done: true, value: undefined} - 给
FormData设置属性值,如果FormData对应的属性值存在则覆盖原值,否则新增一项属性值。formData.set('name','张三') // 不存在则新增,存在则把key对应的值覆盖
浏览器兼容性

如果需要兼容所有浏览器需要安装formdata-polyfill
npm install formdata-polyfill 只需要在页面导入
require('formdata-polyfill');
var fd = new FormData(form)具体看链接www.npmjs.com/package/for…