FormData与.serialize(),有什么区别?

L84*_*L84 34 javascript ajax jquery form-data

最近我使用AJAX提交表单.

在研究最好的方法时,我看到了一些AJAX提交使用.serialize()和其他使用FormData.例如.

一份意见书做了这个:

data: form.serialize()
Run Code Online (Sandbox Code Playgroud)

而另一个做了:

var formData = new FormData($('form')[0]);
data: formData
Run Code Online (Sandbox Code Playgroud)

那么FormData和之间的区别是什么.serialize()

cha*_*tfl 36

与使用角度的主要区别在于,您无法序列化文件,只能序列化文件名.... value文件输入.

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

serialize()适用于不支持FormData API的旧浏览器,例如IE <10

参考FormData文档


小智 6

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

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