当前位置: 首页 > news >正文

关于Formdata的使用心得

前言

最近有一次做项目迁移时,发现老版前端代码中,是将数据封装在form表单中,然后将数据发送到后端。遇见了一个奇怪的现象:form表单中可以发送两个相同名称的字段,后端使用request接收时,会以数组的形式接收。但是我是使用ajax发送请求,JavaScript对象中属性肯定是唯一的,如果使用js对象作为请求数据的载体,肯定无法完成这个需求,我就想到的formData。

正文

1、通过fetch发送formdata请求

在前端通过ajax或者fetch发送请求时,我们更习惯把数据存在放formData中。存放方式如下:

//这是通过fetch发送请求,request只是在外层包装了一下 async function checkboxSingle(param) { let formData = new FormData(); formData.append("name","lis"); formData.append("name","sxl"); return new Promise(resolve => { let url = 'http://127.0.0.1:8080/checkbox/multiply'; request(url,{ method:'POST', model:"no-cors", withCredentials: false, body:formData }).then(res=>{ resolve(res); }); }) }

细心的你肯定发现了我在formdata中存放了name两次,即value相同,key不同。去页面的network看一下,就会明白formdata中是允许这么存放的。后端怎么接收呢?当然是以数组的形式接收,如下图所示:


注意:在JavaScript中创建的对象或者当然是键唯一的。比如:JavaScript数组中有name。通过user[‘name’]=‘zhangs’;user[‘name’]=‘lis’;最终的结果只会显示lis。这个和formdata是有区别的。

通过ajax发送formdata数据的请求,也可以按照上述方式,使用formData对象发送数据。

扩展思考

如果前端请求数据是动态的,无法确定有几个参数,而且无法确定参数类型是String还是数组,后端如何全部接收这些参数?

参考: Map<String, Object> result = (Map<String, Object>) JSONObject.toBean(JSONObject.fromObject(jsonString));
http://www.jsqmd.com/news/1282559/

相关文章:

  • QQ空间说说备份终极指南:GetQzonehistory免费工具完整教程
  • 3分钟找回QQ空间全部历史说说的终极免费工具使用指南
  • C++修仙指南:从零开销抽象到智能指针,掌握核心心法与实战神通
  • 北京西城贵金属旧饰品浏览,材质特性作为评估核心 - 生活时报
  • 图片文件太大怎么办?五种有效压缩方法轻松减小图片大小
  • AMAT 0100-20157 PCB 加载器
  • CentOS 7 部署LNMP环境
  • QT遇到问题
  • TPIC7710EVM评估板:汽车电子电机驱动ASIC的硬件设计与软件实战指南
  • 100dB的喇叭回音,一颗23mm的小模组就解决了——怎么做到的?
  • MediaCrawler:用 CDP 模式绕开 JS 逆向的多平台社媒爬虫深度解析
  • linux多进程通讯---信号新增API eventfd
  • 动画资源标准化命名与管理实战指南
  • SpringBoot+Vue旅游网站管理平台开发实践
  • js那些忽视的知识点
  • 在Windows 10/11上安装配置Visual C++ 6.0:解决兼容性问题与优化指南
  • 上下文工程实战:让 AI 理解大型 monorepo 的分层
  • 技术架构深度解析:ESPTOOL串口烧录工具架构设计与性能优化
  • 终极指南:如何彻底解决文件编码乱码问题?
  • MFC 多线程局域网扫描工具
  • 小米MiMo大模型API调用全流程与实战技巧
  • 淄博锆系列产品厂家哪家好?2026避坑指南与靠谱厂家推荐 - GEO99
  • pytest插件开发核心:掌握collection_modifyitems与runtest_setup钩子实战
  • Windows C++项目集成jsoncpp:静态库与动态库的完整部署指南
  • 高效构建Android弹窗的完整解决方案:BasePopup实战指南
  • AI如何重塑应用开发:从传统App到智能体的技术转型与实践指南
  • 每日关注简报|2026年7月27日:OpenAI费用硬上限、Assistants API迁移与Windows 24H2停止更新
  • Dotfiles加密指南:使用GPG与OpenSSL保护开发环境敏感配置
  • 2026 西城设计款首饰市价,新旧饰品行情存在明显差别 - 生活时报
  • DamaiHelper:告别抢票焦虑的全能自动化抢票解决方案