前两天根据项目后端接参问题跟同事讨论,既有 formData 又有 json,比较混乱。我的观点是 json 对于接复杂对象比较方便,formdata 需要 String 转成对象,同时参考了一些开源项目,请求封装默认的是 json 格式。同事认为,请求方式只是一种跟前端的约定,json 格式 postman 自测太麻烦,绝大多数接口 formData,遇到复杂格式的 json 接参或者 String 转对象。
前两天根据项目后端接参问题跟同事讨论,既有 formData 又有 json,比较混乱。我的观点是 json 对于接复杂对象比较方便,formdata 需要 String 转成对象,同时参考了一些开源项目,请求封装默认的是 json 格式。同事认为,请求方式只是一种跟前端的约定,json 格式 postman 自测太麻烦,绝大多数接口 formData,遇到复杂格式的 json 接参或者 String 转对象。
|
1
json 格式 postman 怎么麻烦了,直接写到 body 里,加个 type 头就完了
|
|
a62527776aOct 14, 2019
2
我们公司后端也是一会儿一种 烦死了
|
|
shakarakaOct 14, 2019
3
前端完全抛弃 formData 是可行的,只不过大多数后端框架自带了 formData 解析相对方便而已,其实是有 json 的传入参数校验之类的,class-validator 就是,只不过他们懒得。。。
|
|
liuhuansirOct 14, 2019
4
感觉两者区别不大,只要统一成一种就行,两种混搭最烦
|
|
droizOct 14, 2019 via iPhone
5
不涉及上传文件那随便,上传文件还是得 formData
|
|
arrow8899Oct 14, 2019
6
form-data 和 json 在表示同样的信息时,form-data 数据量会小一点(a=1&b=2) 7Byte,但是 json 可读性更好({"a":1,"b":2}) 13Byte。除此之外,区别不大,只要前后端约定好就行。
|
|
userdhfOct 14, 2019
7
post 只能用 formdata 吗?
|
|
zivyouOct 14, 2019
8
上传文件只能用 form-data
|
|
VegetableOct 14, 2019
9
主要是 form 传递二进制比较方便,不然可以完全舍弃。json 上传文件不是很合适。
|
|
SappOct 14, 2019
11
现在不是只有上传文件才用 form-data 吗?
|
|
KusokuOct 14, 2019
12
postman 自测真的不麻烦啊
|
|
ChingimOct 14, 2019
13
用 json, 便于调试 /抓包 /debug
|
|
hardeOct 14, 2019
14
后端偷懒了,我设计接口都是兼容 formData 与 json 的。
|
|
barberyOct 14, 2019
15
formData 只能是传递 string 格式的参数,类似 go 这类的静态语言,如果传 json 的话可以省下不少类型转换的麻烦
|
|
maemualOct 14, 2019
16
差别不大,统一成一种就行。。。
|
|
KuroNekoFanOct 14, 2019
17
你指的 formdata,是 application/x-www-form-urlencoded 吧
|
|
KrimeOct 14, 2019
18
formData 传数组和多维数据的时候比较捉急,但是更适合上传文件
|
|
ijseOct 14, 2019
19
formdata 对数组的编码方式还有很多种方式,常常会因为不统一引起麻烦,不如 json 更标准
|
|
ipwxOct 14, 2019 via Android
20
对象一复杂,formdata 你就哭吧
|
|
wisetcOct 14, 2019 via iPhone
21
不是两种方式都应该同时支持吗,任意调用者用着舒服就用哪种,现在大部分都支持 raw json contentType 吧。
|
|
optionalOct 14, 2019 via iPhone
22
前者可以传文件,后者保持结构和类型
|
|
walpurgisOct 14, 2019
23
Content-Type 是 json 的时候,cors 会多触发一次预检请求
|
|
lihongjie0209Oct 14, 2019
25
@harde #14 这个问题基本和开发无关, 取决你的用的 mvc 框架是否支持。
|
|
jorneyrOct 14, 2019
26
FormData 方便 XSS 过滤,但是传复杂对象 (多级属性) 麻烦
JSON 传复杂对象方便,但是 XSS 过滤麻烦 |
|
hardeOct 14, 2019
27
@lihongjie0209 框架不支持就不能自己写了?写个过滤器一劳永逸。
|
|
lihongjie0209Oct 14, 2019
28
|
|
AV1Oct 14, 2019 via Android
29
FormData 传简单的 key-value 挺方便的,但是嵌套对象、数组就比较麻烦了。所以要根据你的情况考虑选择。
|
|
30
有必要统一么,我前后端客户端都写,参数简单就用 FromData,复杂参数就用 Json 格式传参
根据实际情况选用就好了,或者有偏好+自己可以决定用什么格式的话,想用什么格式用什么格式 否则,还是看清接口文档,参数格式到底是啥,反正也没有决定权... |
|
32
传什么都好,别再给我传 undefined 了,脑壳疼
|
|
TakamineOct 15, 2019 via Android
33
还是除了文件上传之外统一 json 吧。
|
|
SkyLine7Oct 15, 2019
34
文件上传,formData,其他一律 json 或者 urlencoding
|