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

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

作者: 自律财富自由 | 来源:发表于2018-12-11 22:48 被阅读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('数据异常')
          })
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/ikeyhqtx.html