axios发送get请求,node后台接收不到参数(已解决)

今天写项目前台发送axios的get请求,获取不到数据,然后我在node打印我发请求的参数一直打印都是空对象。后台需要url格式数据,琢磨很久就找到原因了。今天记录一下,以后再也不踩这个坑。

1.问题

 首先在node后台打印前端带来的参数,不知道node那个字段接收前端传了的数据,那我就把他们都打印一遍。

 然后我在postman发请求是正常的

 node就接收到参数了,在req.body的字段里面

 那我在我项目发请求

 我这里也保证queryObj对象里面有数据的,也首相绑定收集数据的

 然后我在前台点查询按钮发请求,请求是成功的,因为参数不是必选的所以不会报错,但是我选了参数发请求后台接收不到

 

 打印的都是空对象

问题就描述好了。

2.问题原因

 然后我就去网上找原因,再看看了axios的源码发现get的封装

export default{
    fetchGet (url, params = {} ){
    ............省略无数代码
    }
}

因为js对对象类型是引用类型的,所以肯定是我的定义的对象属性出了问题。axios的get请求固定好的带参数要用params

总结:

params是添加到url的请求字符串中的,用于get请求带参数。
data是添加到请求体(body)中的, 用于post请求带参数。

3.更正我的代码

在写接口那里错了,把我写的data改了为params就可以了。

发请求

 

 node就在query字段接收到前端的参数了

 大概就这样子。

到现在就实现前后通信了,但是我这里有个小问题就是我在postman发请求node接收的字段是req.body,我现在项目里面的发的请求是在req.query

有大佬也可以解释一下 !!!

总结:

 

 post请求要用data字段 node用req.body接收

get请求在url带参数, node用req.params接收

get请求带参数用params字段,node用req.query接收

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值