http请求FormData数据两种形式的区别

用axios发送post请求,使用FormData发送数据,格式如下
图片描述

但是之前的请求中数据格式是下面这样的,应该使用jQuery发的。
图片描述

请问这两者有什么区别? 因为第一种响应是true,但是好像还没删除成功!

export const delHandBook= params => {
    return axios.post(`${base}/fileManage/deleteHandBook`, params, {headers: {'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'}}).then(res => res.data);
};
阅读 14.7k
5 个回答

一种是原样传递,一种是url编码后传递,分别对应multipart/form-data和urlencode

你在 axios 中直接发送formData的值,就是你图一的样子。 没有删除成功是你后端没有正确的处理你提交过去的数据。

如果你想使用formData并且传递过去的数据是图二,那么你可以使用URLSearchParams包装一下(有的话文件会被过滤掉)

let form = new FormData();
form.append('name', '111');
let param = new URLSearchParams(form);

axios.post('xxxx', param).then((res) => { console.log(res)}) 

clipboard.png

第一种那个应该是文件上传吧
补充
这是我用form-data提交数据的请求
clipboard.png
请求代码如下
clipboard.png
你第一个图显示的只在上传文件见过,是把文件编译成二进制上传
按照你的写法,发出的请求是这样的:

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进