在Vue中使用axios发送post请求时,请求失败

本人小白,仅记录平时的错误

反复检查,最终是post的参数格式有错误

错误代码👇

// 这里有shopId
  const shopId = parseInt(route.params.id, 10)

// 这里有shopName
  const shopName = computed(() => {
    const shopName = cartList[shopId]?.shopName || ''
    return shopName
  })

// 发送请求
    const handleConfirmOrder = async () => {
      // 这里有products
      const products = []
      for (const i in productList.value) {
        const product = productList.value[i]
        products.push({ id: product._id, num: product.count })
      }
      // console.log(products)创建的products数据用在下面
      try {
        const result = await post('/api/order', {
          addressId: 1,
          shopId,
          shopName,
          isCanceled: false,
          products
        })
        // console.log(result) 这里打印不出来
      } catch (e) {
        alert('请求失败')
      }
    }

// 这里的post是用axios封装的post

当时一脸懵逼,我明明发送的是post请求,到这里怎么会变成了get请求了??

然后我各种度娘各种搜索,该用的方法试了一遍,还是没解决。。。

直到我看到这句话。。。在Vue中使用axios发送post请求时,可能会出现后端无法接收到参数的情况。这个问题的原因是axios默认发送的请求是json格式的。。。

突然灵光一闪,那就是我的参数!我错误的原因可能来自参数

于是我把所有的post参数都 console.log()一遍,只有shopName打印的是computed属性,所以shopName的值:要写成shopName.value

 修改正确后👇

try {
        const result = await post('/api/order', {
          addressId: 1,
          shopId,
          shopName: shopName.value,//导致错误的原因来自这里
          isCanceled: false,
          products
        })
       } catch (e) {
          alert('请求失败')
         }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值