最合适的Ajax内容编码类型
最合适的Ajax内容编码类型原文地址:我的博客 背景在公司开发的一个页面的Ajax请求使用了 引入
问题来了发送Ajax请求最合适的内容编码类型是什么? 常见的contentTypex-www-form-urlencoded这是Jquery/Zepto Ajax默认的提交类型。最简例子为: let userInfo = { name: 'CntChen',info: 'Front-End',} $.ajax({ url: 'https://github.com',type: 'POST',data: userInfo,success: (data) => {},}); 此时默认的提交的 name=CntChen&info=Front-End HTML的 如果请求类型 json使用json内容编码发送数据,最简例子为: let userInfo = { name: 'CntChen',Info: 'Front-End',contentType: 'application/json',data: JSON.stringify(userInfo),}); 最主要的不同有3点:
{"name":"CntChen","info":"Front-End"}
multipart/form-data
-- multipart/form-data
JS对象编码对于扁平的参数对象,使用 格式化demo 对象嵌套{ userInfo :{ name: 'CntChen',login: true,},}
userInfo[name]=CntChen&userInfo[info]=Front-End&userInfo[login]=true
{"userInfo":{"name":"CntChen","Info":"Front-End","login":true}} 对象字段为数组{ authors:[ { name: 'CntChen',{ name: 'Eva',info: 'Banker',} ],}
authors[0][name]=CntChen&authors[0][info]=Front-End&authors[1][name]=Eva&authors[1][info]=Banker
{"authors":[{"name":"CntChen","info":"Front-End"},{"name":"Eva","info":"Banker"}]} 可见: 回答问题:json最好较小的传输量从前文可以看出,使用json字符串的形式,可以减少冗余字段的传输,减少请求的数据量。
请求与返回统一目前许多前后端交互的返回数据是json字符串,这可能是考虑较小的传输量而作出的选择。同时,ES3.1添加了JSON对象,许多浏览器可以直接使用JSON对象,可以将json字符串解析为JS对象( 框架的支持目前Mvvm的前端框架如React,网络请求通常是提交一个JS对象(传输的时候编码为json字符串)。后台服务器如Koa,接收请求和响应的数据是json字符串。 可读性高可读性高是json格式自带buff。 结论赶紧使用 References
END(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |