Vue axios post传值到后台时获取不到

在Vue中使用axios进行POST请求时,遇到后台无法获取参数的问题。解决方法是引入qs模块,通过qs.stringify()转换参数,并在axios配置中设置headers。详细步骤包括安装qs模块,修改main.js配置,以及展示axios的post请求示例。

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

Vue axios post传值到后台时获取不到

Axios post 参数为null

解决:

  1. 引用qs, 安装qs模块 (npm install –save qs)
  2. main.js 里的代码截图
    这里写图片描述
    同时要在main里加上这个head
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'

下面送上我的axios调用方法:

this.$post('https://xxx.action',
        this.$qs.stringify({a: '2'})).then((response) => {
        console.log(response)
        this.$notify({
          title: '成功',
          message: response.errorCode,
          type: 'success'
        })
      }).catch((response) => {
        console.log(response)
        let errorData = ''
        if (response.response === undefined) {
          errorData = response.errorMsg
        } else {
          errorData = response.errorMsg
        }
        this.$notify.error({
          title: '失败',
          message: errorData
        })
      })

* 题外话

post 传参数 有两种格式,一种是字符串,一种是json

1.字符串

let params = new URLSearchParams();
params.append('age', '24');
  1. JSON
    由于axios默认发送数据时,数据格式是Request Payload,而并非我们常用的Form Data格式,后端未必能正常获取到,所以在发送之前,需要使用qs模块对其进行处理。
// 如上面axios用法里参数的处理一样

至此,数据返回成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值