axios发送post请求时,这样的数据格式对吗

发布于 2022-09-12 23:29:56 字数 1012 浏览 17 评论 0

image.png
image.png

这是发出去的参数listQuery

      listQuery: {
        current: 1,
        size: 20,
        factoryName:"ddd",
        address:"ddd"
      },
getList() {
      this.listLoading = true
      getFactoryList(this.listQuery).then(response => {
        // this.list = response.data.records
        // this.total = response.data.total

      })
    },

这是getFactoryList

export function getFactoryList(params) {
 return request({
   url: '/factory/page',
   method: 'post',
   header:{
     'Content-Type':'application/json'  //如果写成contentType会报错
   },
   params
 })
}

这里的getFactoryList里,需要设置content-type吗?axios默认就是它吧?然后发出的直接是对象会自动转化成json吗?这样在浏览器的呈现结果对吗?拼接在浏览器后面的不是get了吗,想确认如果post请求的话,该怎么改

============================================

找到了, 应该是用params的问题,改成了data,有没有详细解释一下这个

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

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

发布评论

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

评论(2

南风几经秋 2022-09-19 23:29:59

axios 文档中有说。

其实你可以理解为想带在url上就用params

想放在body中就用data


url 上的话,只有一种格式。body中的话支持的格式就比较多了。json、formdata之类的

按照规范来讲,post还是应该把参数放入body中。

姐不稀罕 2022-09-19 23:29:58

最近好像挺多提的问题都是 parmas 传入的参数的形式。

getFactoryList(params) {
 return request({
   url: '/factory/page',
   method: 'post',
   header:{
     'Content-Type':'application/json'  // 请求格式请按照标准格式书写
   },
   params   // 大部分的问题都在这里,你的 params 需要用 data 传入,axios 才能接收到
 })
export function postAction (url, parameter) {
  return axios({
    url: url,
    method: 'post',
    data: parameter // 问题在这里
  })
}

然后是默认值的问题 axios 的默认的 headers['Content-Type'] = 'application/x-www-form-urlencoded'

可以完整的读一下 Axios 的文档
比如说 默认值实例配置项 以及 拦截器

最后贴一下 Ant-Design-Vue-Pro 封装的 Axios:


已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文