初次使用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'))

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

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐