axios post请求,后端接受不到数据,querystring也不行

1.post请求,querystringfy序列化url之后,后端也接受不到数据,初步查到因为post数据里面有数组,querystringfy序列化数组之后直接变成空字符串
2.请求数据格式是这样的:

{
  "goodsList": [
    {
      "goodsId": 41,
      "salePrice": 11,
      "discount": 0,
      "amount": 3,
      "memo": "",
      "empId": ""
    }
  ],
  "shopId": 5,
  "memo": "123",
  "pno": "20",
  "empId": "14",
  "hangType": 2
}

3.请求代码是这样的:

clipboard.png

4.结果是这样的:

clipboard.png

阅读 5.1k
3 个回答

axios的post接口的第二个参数是个请求携带的数据,类型必须是对象,因为
源代码请求获取到参数,交给源代码合并逻辑对第二个参数进行了对象合并,所以你这个qs.stringify(data),直接给转成了一个字符串,数据合并肯定没合并进去,你直接写data
这样写

this.axios.post('你的url', data).then(res => console.log(res.data))

试试

post数据要放到data属性里吧,eg:

return request({
    url: '/admin/login',
    method: 'post',
    data: {
        username,
        password
    }
})

this.$post("/wechat/login/getSmsCode?phone="+this.phone)

或者axios.create()后

export const post = (url, params) => {
return axios({

method: 'post',
url: `${base}${url}`,
data: params,
transformRequest: [function (data) {
  let ret = ''
  for (let it in data) {
    ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
  }
  return ret
}],
headers: {
  'Content-Type': 'application/x-www-form-urlencoded'
}

});
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题