前端使用axios发送post请求json数据到后端SpringBoot,数据多出一个 等号 “=“
前端传给后端的数据后面多了个“=“
·
1最近在写springboot+vue做增删改查时,需要由前端axios发送post请求,传输学生uid到后台,后台拿到的数据多了一个等号,百思不得其解,搜集过大量资料后发现是前后端数据传输类型不同的原因。
前端发送axios请求时,默认的请求头headers内部的Content-Type是application/x-www-form-urlencoded;charset=UTF-8,这是一种键值对的数据结构,前端传过来的内容是放在k中,v为空,这时候取值时,内容就变成了k=,也就是为什么后端接收的数据,末尾多了一个=
解决:
需要在发送axios请求时设置请求头headers信息
this.axios.post("/deleteUser", uid, {
headers: {
'Content-Type': 'application/json'
}
}).then((response) => {
if (response.data) {
// 删除成功
this.$message({
message: response.data.message,
type: 'success'
})
} else {
// 删除失败
this.$message.error(response.data.message);
}
}).finally(() => {
})
controller层:
//根据id删除用户
// @RequestMapping(value ="/deleteUser" ,method = RequestMethod.POST)
// @PostMapping(value = "/deleteUser",produces = "application/json;charset=UTF-8")
// @ResponseBody
@RequestMapping(value = "/deleteUser",produces = "application/json;charset=UTF-8")//指定接收数据的格式
public boolean deleteUser(@RequestBody(required = false) String uid) throws UnsupportedEncodingException {
// String id = URLDecoder.decode(uid,"UTF-8");
System.out.println("???????");
System.out.println(uid);
return userMapper.deleteUser(uid);
}
更多推荐
已为社区贡献1条内容
所有评论(0)