formData看不到数据的原因

初次使用new FormData(),后端接收不到数据。

查询原因:

1 使用方式不对,应该用

$data = new FormData($(‘#表单ID‘)[0])。

因为new FormData需要的是一个HtmlElement类型的数据,而jquery拿到的是HtmlElement集合,所以哪怕只有一个元素,也要用[0]取其第一个元素。

 

jQuery是一个伪数组对象,本身是对象,能表现出来数组的特点: 有length属性,能够用下标取值;

$(".someClass") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;

$("#id") // 这个时候将所有匹配到DOM元素对象放在jQuery维护的数组中;

 

2 formData看不到数据的原因,需用get()

var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
var form1 = new FormData(); // FormData 对象
form1.append("file", fileObj); // 文件对象
console.log(form1)

最后输出的是空的formData对象,看不到插入的fileObj的内容

经查询,如要查询formData的内容,需用get(),如:

var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
var form1 = new FormData(); // FormData 对象
form1.append("file", fileObj); // 文件对象
console.log(form1.get('file'))

随笔记录,没时间整理,见谅。

 

你可能感兴趣的:(Ajax,Jquery)