FormData与jQuery#serialize(),有什么区别

FormData vs jQuery#serialize(), What is the difference?

本文关键字:什么 区别 jQuery#serialize FormData      更新时间:2023-09-26

最近我使用AJAX提交了一个表单。

在研究最佳方法时,我看到一些AJAX提交使用jQuery#serialize(),另一些使用FormData。例如

一份提交的文件做到了这一点:

data: $('form').serialize()

而另一个做到了:

var formData = new FormData($('form')[0]);
data: formData

那么FormDatajQuery#serialize()之间有什么区别呢?

从使用角度来看,主要区别在于不能序列化文件,只能序列化文件名。。。。文件输入的CCD_ 5。

另一方面,FormData对象也包括文件(如果适用)。

此外,CCD_ 7将在不支持FormData API的较旧浏览器中工作,例如IE<10

参考FormData文档

一个更重要的区别是表单中空输入字段的处理

serialize()
只包含带值的输入字段。键/值对中将缺少未选中的复选框或空输入字段。因此,应用程序的后端必须进行一些记账,以便将丢失的键解释为空值。
FormData
将为您提供所有表单字段及其值的完整列表。即使它们是空的。