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表单关联):

  1. 直接创建一个FormData对象,然后通过调用它的append()方法添加字段,就像这样:
var formData = new FormData();
formData.append("username", "Groucho");
  1. 通过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));
原文地址:https://www.cnblogs.com/cag2050/p/7388417.html