[前端开发]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为空对象