关于使用axios POST方法请求,后端接收不到参数的问题

2018-12-11  本文已影响0人  自律财富自由

问题前提:
使用post请求后端数据

一开始我也没注意看接口文档,就按照json的接收格式来写的:

   this.$ajax({
        method:"POST",
        url:url,
         data: {
          isIncludeDeleted:1,
        }
      }).then((res) => {
        console.log('res = ', res)
      }).catch(() => {
        console.log('数据异常')
      })

后端一直没有收到我传过去的参数,但是我浏览器上显示有参数,而且请求状态是200,但是后端数据返回错误。

查资料啊,看到一篇很好的博客,讲解了post请求的几种请求方式。地址点击这里

才明白,我上面写的只是POST请求方式的其中一种,也是默认的一种,json格式的。

而我项目中用到的就是另外一种:Content-Type: application/x-www-form-urlencoded,这是其中一种原因

另外一个原因是:没有注意看接口文档,接口文档中标注了post传参的形式是query(也就是url?params=1这种形式),而不是通常使用的bod形式(也就是data: {}这种形式)

找到问题所在,就很容易就解决了。
解决办法:
改变传参形式,由原来的body形式改为query形式。

this.$ajax({
        method:"POST",
        url:'url?isIncludeDeleted=1',
        headers: {'Content-Type': 'application/json'},
        // data: {
        //   "isIncludeDeleted":"1",
        // }
      }).then((res) => {
        console.log('res = ', res)
      }).catch(() => {
        console.log('数据异常')
      })
上一篇下一篇

猜你喜欢

热点阅读