vue中axios发送post请求,后端(@RequestParam)接不到参数

在Vue应用中,使用axios进行POST请求时,后端Java接口使用@RequestParam无法获取参数。解决方法是在axios中引入qs库,将请求体转换为'Content-Type':'application/x-www-form-urlencoded'格式。经测试,请求头的替换并非必要条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到的问题描述 :axios post 请求,后端接收不到参数。

        我们的接口是java,用@RequestParam来接收前端的参数

解决方案:使用qs;axios中已经包含有qs,所以无需重新安装,直接引入就好

import Qs from 'qs'//引入qs
   let chedata = {
      data: encStr,
      sign: md5.hexMD5(che),
      timestamp: timestamp,
    }
//chedata是我需要传递给后端的参数
    console.log(Qs.stringify(chedata))
    axios({
      header: {
        "Content-Type": "application/x-www-form-urlencoded;charset=utf-8"
      },
      method:method || get,
      url: baseUrl + url,
      data:Qs.stringify(chedata),//在传参之前先用qs.stringify转化一下格式
      responseType
    }).then((response) => {
      console.log(response)
      success(response.data);
    }).catch((err)=>{
      console.log(err)
    })
  }
}

  网上很多解决方案里面说还需要把请求头替换一下,但是我试了一下,替换和不替换好像没有影响;

如果需要替换的话,就将head

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值