现在很多新的接口设计出来以后,POST发送的数据都是json而不是浏览器中常见的key=value&key=value键值对格式。json格式的优缺点我还是比较熟悉的,但是在这里键值对格式同样能解决问题。那么请问为什么这样设计呢?
2 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
json传输是带类型的,你说的传统的POST是Content-Type:application/x-www-form-urlencoded,就表示虽然也按键/值传递了,但确实字符串,本来数据该有的类型被忽略了。json类型的数据可以比较好的支持嵌套的数据格式,这种数据格式在后端可以和文档数据库(比如mongodb)的存储结构直接对应;在前端可以和js的数据对象直接对应。采用Content-Type:application/x-www-form-urlencoded势必要增加工作量,譬如:数据转型,类型校验等等

白猪掌柜的
TA贡献1893条经验 获得超10个赞
浏览器中的key=value&key=value是拼接在url上然后传递给server的,别说用的是POST请求,其实和GET没啥区别。虽然都能解决问题,但有优劣之分。1.用KV连接URL,使得URL比较丑陋。2.用KV连接URL,如果有敏感信息,存在安全问题。3.用KV连接URL,长度有限制。如果用JSON,可以使用requestbody发送数据,就回避了第一点第三点,第二点相对来说要好点。JSON格式的数据现在比较通用,各种语言支持性都比较好。
添加回答
举报
0/150
提交
取消