本文共 1196 字,大约阅读时间需要 3 分钟。
1、我们使用FormData有时候不仅仅要传给后端文件,还需要传给后端对象信息。
使用FormData传对象是用key-value形式的,所以传对象不能传整个对象,要传属性,
后端接口用对象接收即可,因为可以将传来的属性自动封装到实体类中(前端传来的属性名称和实体类
的属性名称一定要一致,否则无法封装)。
2、还有当我们传的对象里面还有引用对象的时候,比如User类里面还有一个Depot类,我们就应该这样
formData.append(“depot.id”, this.formData.depot.id);
这样的话,就可以成功传给User类里的Depot类了
前端实体类数据格式:
formData: { account:'', depot:{ id:'', name:''}, name:'', password:'', auth:'' }
添加过程及提交
var data = new FormData();data.append("account", this.formData.account);if(""==this.formData.depot.id){ this.formData.depot.id = 999;}data.append("depot.id", this.formData.depot.id);data.append("name", this.formData.name);data.append("password", this.formData.password);data.append("auth", this.formData.auth);data.append("image", this.img);axios.post(url, data).then(function (response) { var res = response.data; if(res.success){ obj.$message({ type: 'success', message: '添加成功!' }); vue.jump("user_list_page"); }else { obj.$message.error({ type: 'fail', message: res.msg }); }});
后端接口
@PostMapping("/add")public Result add(User user, MultipartFile image, HttpServletRequest request){ }
转载地址:http://cdern.baihongyu.com/