post传值单个多个参数 400错误 解决方案
先说直接操作,再来分析,最后补充springboot的传递参数注解。【穿插一下背景:前端使用vue,后端使用springboot 】
-
第一种:传递单个参数,修改请求
headers[‘content-type’]=‘application/x-www-form-urlencoded’ -
第二种:传递多个参数,
1.修改请求头headers[‘content-type’]=‘application/json’
2.转换传递参数JSON.stringify()
我的是这样
let data={
icon:val.icon,
name:val.name,
buyNum:val.buyNum,
price:val.price,
mid:val.id
}
data=JSON.stringify(data)
const res=await this.$api.menu.addMenuApi(data)
3.最后一步,修改后端接口参数 @RequestBody String xxxx。如果写成@RequestBody Menu menu 对象格式会报错。
---------------------------完结------------------------------
注意的几个点:
1.http协议中get无需请求头,post需要。
post请求单个参数对应请求头为
headers[‘content-type’]=‘application/x-www-form-urlencoded’
post请求多个参数对应请求头为
headers[‘content-type’]=‘application/json’ 同时,要把传入的参数转换格式JSON.stringify(),后端需要使用(@RequestBody String xxx)String格式来接收
2.在springboot中的传值约定
单个参数使用 @RequestParam
多个参数使用 @RequestBody