问题:当在vue中使用了axios发送post请求给后端时,后端接收的数据为null, 或者数据部分为null,部分有值。
但用postman测试接口,却发现能正常接收数据和返回结果。

@PostMapping("/login")
    public Map<String, Object> UserLogin(@RequestParam("email") String email,@RequestParam("password") String password) {
...
}

尝试将登录时的参数封装成对象,并在controller层用@RequestBody

@PostMapping("/login")
    public Map<String, Object> UserLogin(@RequestBody LoginParam param) {
...
}

结果: 依旧没有解决问题,后端依旧不能完整的接收数据

解决方法:

在前端进行axios的post请求时,用qs模块进行处理

  1. 安装qs
    npm install qs
    2.
    //引入qs模块
    import qs from 'qs'     
    Vue.prototype.$qs = qs

    3.

    axios.post('/login', this.$qs.stringify({username:this.loginForm.username,password:this.loginForm.password}))
    

    4.后解决了问题

  2. 参考博客:https://blog.csdn.net/weixin_43934513/article/details/108278061

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐