[前端开发]form-data和x-www-form-urlencoded的区别
- 在后台开发时,之前做了文件的上传,用的是form-data,但并不知其区别。今天遇到了req.body为空的情况,切换成了x-www-form-urlencoded解决
form-data
就是http请求中的multioart/form-data
,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。
- 既可以上传键值对,也可以上传文件,当上传的字段是文件时,会有Content-Type来说明是文件类型,Content-Disposition来说明字段的信息。
x-www-form-urlencoded
就是application/x-www-form-urlencoded
会将表单中的数据转换为键值,用&分隔
- 当form的action为get时,浏览器用x-www-form-urlencoded的编码方式,将表单数据编码为
(name1=value1&name2=value2…),然后把这个字符串append到url后面,用?分隔,跳转到这个新的url。 - 当form的action为post时,浏览器将form数据封装到http body中,然后发送到server。
这个格式不能提交文件。
- 单post键值时,用form-data获取的req.body为空对象
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步