FormData 知识点
-
通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对。它可以更灵活方便的发送表单数据,因此可以独立于表单使用。
如果你把表单的编码类型设置为multipart/form-data ,则通过FormData传输的数据格式和表单通过submit() 方法传输的数据格式相同。
因此:使用FormData对象,和把表单的编码类型设置为multipart/form-data,传输的数据格式相同。
此段文字出处:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects -
FormData对象可以发送的数据格式:
a Blob, File, or a string, if neither, the value is converted to a string
对象和数组,需要先用JSON.stringify转换下。
转换后,数组形式为:["aaa","",""];否则,数组是这样的(逗号分隔的字符串):,,,, -
创建FormData对象的2种方式(第一种方式,可以不与form表单关联):
- 直接创建一个FormData对象,然后通过调用它的append()方法添加字段,就像这样:
var formData = new FormData();
formData.append("username", "Groucho");
- 通过HTML表单创建FormData对象
想要构造一个包含Form表单数据的FormData对象,需要在创建FormData对象时指定表单的元素。
var formData = new FormData(someFormElement);
示例:
var formElement = document.querySelector("form");
var request = new XMLHttpRequest();
request.open("POST", "submitform.php");
request.send(new FormData(formElement));