位置: IT常识 - 正文

vue使用axios发送post请求携带json body参数,后端使用@RequestBody进行接收(vue如何使用axios)

编辑:rootadmin
vue使用axios发送post请求携带json body参数,后端使用@RequestBody进行接收 前言

推荐整理分享vue使用axios发送post请求携带json body参数,后端使用@RequestBody进行接收(vue如何使用axios),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue发送请求的几种方式,vue如何使用axios,vue怎么发送post,vue发送请求的几种方式,vue如何发送ajax请求,vue发送axios请求,vue如何发送ajax请求,vue怎么发送post,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在做自己项目中,做一个非常简单的新增用户场景,但是使用原生axios发送post请求的时候,还是踩了不少坑的。

唉,说多了都是泪,小小一个新增业务,在自己前后端一起开发的时候,硬是搞了好久。

下面就把问题总结分享下,防止后人再踩坑。

接口定义

首先先看下我的接口定义吧。

其实就是一个很简单的新增,参数也不复杂。只是一个json实体的user对象

@PostMapping(value = "/save") public Result save(@RequestBody User user) { return Result.ok(userService.saveUser(user)); }

起初我用apifox是这么调用的,直接在json body里面写参数和值:

后端也是正常接收的:

ok,其实到了这我心里一阵暗爽,这不就妥了嘛,前端随便写点传进来不就完事了,但是还真不是这么简单!

前端代码

先看下我的业务吧,就是点击新增按钮跳出来一个表单,填写信息提交后端

我现在使用的是原生的axios,还没进行封装,我的很多坑都是因为原生导致的。我打算做完这个模块再进行封装,先体验下原生的感觉。

首先我是这么写的:

这里可以简单说下

发送get请求都是传递param,发送post请求都是传递data

由于我发送请求之前就把表单数据定义成一个叫data的变量,完整写法应该是:

data:data // 由于key和value一致,可以简写为data

vue使用axios发送post请求携带json body参数,后端使用@RequestBody进行接收(vue如何使用axios)

// 新增用户信息 saveUserInfo(){ let data = this.ruleForm; axios.post('http://localhost:9090/user/save',{data},{ headers: { "Content-Type":"application/json" }, }).then(res =>{ // 请求成功状态为200说明添加成功 if(res.data.status===200){ // 关闭用户新增表单弹窗 this.dialogFormVisible=false, // 添加成功提示 this.$message({showClose: true, message: '添加成功!',type: 'success', duration:2000,center:true}); // 重新刷新列表数据 this.queryUserList(); } }).catch(error =>{ console.log(error) }) },发送请求并发现问题

上面代码写完直接运行,直接通过network查看请求

仔细一看好像没有什么问题吧,但是我在后端打了断点,一看,我的数据没了:

解决问题

然后我仔细分析,发现是因为数据的外面报了一层data:{}结构,经过请教圈子里面的大佬,发现问题所在:

就是data被花括号包起来了,去掉即可解决问题!

saveUserInfo(){ // 表单数据 let data = this.ruleForm; axios.post('http://localhost:9090/user/save',data,{ // json格式 headers: { "Content-Type":"application/json" }, },

再次运行,解决问题:

后端也正常接收数据了:

至此问题解决

小插曲

下面是一个小插曲,就是有朋友和我说需要用qs进行转换下表单数据,但是我试过了。和这个参数转换问题无关,

安装qs插件

直接执行命令:

npm install qs

这个包很小哇,安装起来很快的:

引用qs

安装完之后,就可以使用qs了,直接在文件中引用

// 引用qsimport qs from 'qs'使用qs

引用qs完后,就可以使用它把对象格式化为一个字符串,一行代码即可

// 使用qs对象格式化为一个字符串 qs.stringify(this.ruleForm)

总结

感觉还是挺简单的,但是还是很有必要封装下。

解决问题一定要精确定位,要多尝试,这里引用艾克一句话送给大家:

我宁愿犯错,也不愿什么都不错

本文链接地址:https://www.jiuchutong.com/zhishi/299956.html 转载请保留说明!

上一篇:CSS字体样式(font)[详细](css中设置字体样式)

下一篇:Vue中,一个组件调用其他组件的方法(非父子组件)(vue中的组件)

  • 负数怎么在excel里输入
  • 个税子女教育扣除需要提供什么资料
  • 到期一次还本付息的债券投资摊余成本
  • 社保公积金占比多少
  • 购入资产的入账价格一般是以该项资产的什么反应
  • 进项税留底是什么意思
  • 奖品偶然所得个税如何申报
  • 转增股如何计算资本公积金?
  • 营业外收入用不用交企业所得税
  • 小规模纳税人出售使用过固定资产
  • 办公室饮用水可以浇花吗
  • 个税扣缴端如何删除员工信息
  • 信息技术服务在开票系统怎么选
  • 收到专用发票的会计分录
  • 支付税点是什么意思
  • 工资中的公积金怎么算法
  • 微软发布新的免费 Win11 虚拟机 (2302)
  • windowsserver2019安装教程
  • Windows11预览体验计划空白
  • PHP中Http协议post请求参数
  • 冲减预付款
  • 补贴收入什么时候到账
  • PHP:Memcached::decrement()的用法_Memcached类
  • PHP:bzdecompress()的用法_Bzip2函数
  • 做事应该怎么做
  • neoDVDstd.exe - neoDVDstd是什么进程 有什么用
  • 记账凭证账务处理步骤
  • Obsidian:实现日记记录【设计并使用模板】
  • php字符串包含某个字符串
  • javascript postmessage
  • yolov5 ios
  • 企业所得税税金及附加包括
  • vue引用类型
  • 《web应用开发》是什么
  • pytorch自动编码器
  • overflow常见释义
  • 公司注册资金减资要交税吗
  • 民办非企业培训机构注册流程
  • 一般纳税人在哪里报税
  • 个人所得税专项附加扣除赡养老人
  • 采购供应部门发挥的作用
  • 现金日记账应采用的格式为订本式
  • 员工工资需要交税吗
  • mysql 中文排序是什么规则
  • 购进新车旧车置换流程
  • 分配人工费的会计分录
  • 租车协议要不要报税务机关备案?
  • 固定资产改造的配件怎么入账
  • 城镇土地使用税怎么算
  • 软件开发服务费计入什么科目
  • 跨期费用账务处理
  • 固定资产原值减少后如何计提折旧
  • 技术员差旅费计入哪个会计科目
  • 核算税金怎么核算
  • 资本成本率是指企业用资费用与有效筹资额之间的比率
  • 小规模纳税人发票可以抵扣吗
  • 固定资产清理的税率是多少
  • 饭店卖烟酒需要什么手续
  • 工会费上缴
  • sql注入神器
  • 微软官方win10启动盘
  • windows2008r2驱动包
  • 在mac外置硬盘上安装软件
  • ubuntu系统怎么进入命令行
  • 如何设置win10默认程序
  • linux文件解压gz
  • CSS List Grid Layout 图片垂直居中
  • python生成器怎么用
  • onkeyup,onkeydown和onkeypress的区别介绍
  • python win
  • javascript基础书
  • 猫咪的testflight
  • 使用struts2+Ajax+jquery验证用户名是否已被注册
  • javascript面向对象精要
  • 发票与报销内容不一样
  • 深圳市税务局好考吗
  • 中国一年的税收是多少万亿
  • 怎么查行业代码是多少
  • 河北残疾人申报系统
  • 外贸公司销售额可以10亿以上吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设