通过 JSON 使用 FormData

Jit*_*ian 13 javascript json

JSON用来向服务器端发送数据。如果让我来发送文件,我转换的文件base64,我把它通过JSON。最近我遇到了FormDataMDN

FormData 对象允许您编译一组键/值对以使用 XMLHttpRequest 发送。它主要用于发送表单数据,但可以独立于表单使用以传输密钥数据。

(上面的定义让我想起了JSON自己)

FormData可用于直接发送文件,无需转换为base64.

所以我的问题是“使用Formdataover是否还有其他优势JSON

ema*_*nga 6

json 相对于 formdata 的主要好处是字段嵌套!

使用 json,您可以根据需要嵌套字段(不知道是否有限制),但是使用 formdata,您必须首先手动对字段进行字符串化,然后将它们作为字符串添加到拥有该嵌套对象的键中。

以编程方式

var myObject = {1: 1, 2: {3: 4}}
Run Code Online (Sandbox Code Playgroud)

使用 formdata,您必须先将对象字符串化,{3: 4}然后再将其添加到 formdata,否则,它将作为['object Object']

我的建议:

if (action is 'sending files') {
   // use formdata
} else {
   // use json
}
Run Code Online (Sandbox Code Playgroud)

专业提示:不要以 Base64 形式发送文件,它弊大于利!