formData 传参 如何传数组

原因解析

HTTP 协议本身不直接支持数组

HTTP 协议中的表单数据(application/x-www-form-urlencodedmultipart/form-data)本质上是键值对结构,没有原生的数组类型。

解决

1、使用 重复相同键名
javascript 复制代码
const formData = new FormData();
const materialTypes = [3, 4];

// 直接使用相同的键名
materialTypes.forEach(type => {
  formData.append('material_type', type.toString());
});

大多数后端框架(如 Spring、Express)会自动将重复的键名解析为数组。

2、JSON 字符串格式
javascript 复制代码
const formData = new FormData();
const materialTypes = [3, 4];

// 将数组转为JSON字符串
formData.append('material_type', JSON.stringify(materialTypes));

这种方式需要后端手动解析 JSON 字符串。

3、逗号分隔字符串
javascript 复制代码
const formData = new FormData();
const materialTypes = [3, 4];

// 转为逗号分隔的字符串
formData.append('material_type', materialTypes.join(','));

后端需要用 split(',') 方法拆分字符串得到数组。

相关推荐
程序员黑豆5 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程
剪刀石头布啊5 小时前
antd中可编辑表格中巧用useWatch实现联动高性能效果,以及定制延伸学习
前端
油丶酸萝卜别吃5 小时前
前端转全栈学习路线
前端·学习
浮生望6 小时前
前端路由进阶:History API原理与手写HistoryRouter
前端
陆枫Larry6 小时前
JavaScript 中的竞态是什么,为啥会有竟态?
前端
上海安当技术8 小时前
半天接入:USBKey RESTful API + C 动态库,Web 和 C/S 两套集成路径实战
前端·后端·restful·集成·usbkey
DevUI团队9 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
weixin_4316004410 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
avi911110 小时前
[AI教做人]AI平台做2项目;一个3D模型展示,另一个框架多人
javascript·人工智能·ai·3d模型·3d引擎·顶点和法线
kyriewen10 小时前
我用Claude Code两天干完了团队两周的排期——周报发出去那一刻我就后悔了
前端·javascript·ai编程