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

发布于 2022-09-07 08:21:35 字数 591 浏览 8 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

荒路情人 2022-09-14 08:21:36

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'
}

});
}

相守太难 2022-09-14 08:21:35

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

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

试试

雨落□心尘 2022-09-14 08:21:35

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

return request({
    url: '/admin/login',
    method: 'post',
    data: {
        username,
        password
    }
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文