javascript - 如何在javascript中使用axios发送文件和正文?
问题描述
如何通过axios中的post发送文件和json(body)参数我有这个结构但我无法发送,我有以下代码虽然我设法抓取文件,但我无法发送,我也看到了在其他答案中,将我发送的每个参数的附加信息放在正文中,但我需要发送一个数组和整数
const data = new FormData();
data.append("imagen", this.file);
axios.post("https://url/register",
{
"typeEvent":[1,2],
"campus":[1,2],
"user_id":1,
"survey_id":1,
"evn_name":"prueba desde vue",
"evn_description":"prueba descriocion",
"evn_miles":300,
"evn_start_day":"2021-02-05",
"evn_end_day":"2021-02-05",
"evn_cost":0,
"evn_state":1
},
data,
{
headers: {
'Content-Type': 'multipart/form-data'
}
}
).then((result) => {
console.log(result);
}).catch((err) => {
console.log(err);
});
解决方案
您想要遍历该对象并将每个条目附加到 FormData 对象。
然后就做axios.post(url, data, {head....
const obj = {
"typeEvent": [1, 2],
"campus": [1, 2],
"user_id": 1,
"survey_id": 1,
// ....
"evn_state": 1
}
const data = new FormData();
data.append("imagen", this.file);
Object.entries(obj).forEach(([k, v]) => {
if (Array.isArray(v)) {
// used stringify but might also just use join() for comma separated string
v = JSON.stringify(v);
}
data.append(k, v);
});
推荐阅读
- vue.js - Vue js 在两个组件之间发送数据没有道具
- c# - C#:Math Round() 产生不同的结果
- java - arraylist 的 add 函数不适用于我传递给它的任何类类型
- linux-kernel - 在 NMI 处理程序中检测最后的操作模式
- gradle - 将外部源文件添加到 kotlin 项目
- android - 无法解析符号“菜单”?
- android - 使用 Kotlin 处理错误 RXJava Android
- python - 如何在python中用两个点topLeft点(0,0)和bottomRight点(1,1)初始化一个矩形类?
- python - 如何在 Python 字符串中写入原始字节字符?
- java - java中需要println命令