前端使用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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值