前端数据请求为空Required request body is missing问题
发生环境:前后端分离下,后端@RequestBody要求json格式传输
排查发现几点需要注意的地方:数据格式是否符合要求、数据对象是否为空
this.$axios.post('/tag/edit',row,{
headers: {
"Authorization": localStorage.getItem("token"),//本项目权限需要与问题无关
'Content-Type':'application/json; charset=UTF-8'//设置传输JSON格式即可
}
})
另百度发现还有:GetMapping与@RequestBody注解结合使用不支持,因为GET的参数是通过Url方式传递的,而不是请求体传递的所以无法通过@RequestBody注解来接收。
可以修改注解为PostMapping外,还可以转化成url格式
import qs from 'qs';
Vue.prototype.$qs = qs;
组件中的引用
let postData = this.$qs.stringify({
axios.post(url,Qs.stringify(params))
在传递参数前,用qs转换下格式就可以了,Qs是将对象 序列化成URL的形式,以&进行拼接