You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue向SpringBoot传递Email参数失败,请求参数缺失报错排查

解决Spring Boot + Vue获取用户信息API的参数传递错误

问题根源

报错MissingServletRequestParameterException表明后端@RequestParam要求的email查询参数未被正确传递。你的前端GET请求没有把email放到正确的位置,导致Spring无法识别该参数。

修复方案

1. 修正AuthService的请求参数传递

axios发送GET请求时,查询参数必须放在params字段中,否则会被当作请求配置而非参数。修改代码如下:

getUserByEmail(email) {
    return api.get("/auth/get", {
      params: { email }
    })
}

2. (可选)简化Vue组件代码

你定义的email计算属性只是直接返回invitedPlayer,可以直接传递原数据,减少不必要的计算:

const authService = new AuthService();
authService.getUserByEmail(this.invitedPlayer)

3. 优化Controller的Optional判断逻辑

findByEmail返回的Optional<User>永远不会为null,用isEmpty()判断更符合Optional的设计规范:

@GetMapping("/get")
public ResponseEntity<Optional<User>> getUserByEmail(@RequestParam String email) {
    Optional<User> user = userRepository.findByEmail(email);
    if (user.isEmpty()) {
        return new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }
    return new ResponseEntity<>(user, HttpStatus.OK);
}

补充说明

GET请求的参数需要以?key=value的形式附加在URL后,axios会自动将params对象中的键值对拼接成查询字符串。如果不放在params里,参数不会被正确传递到后端,就会触发缺失参数的报错。

内容的提问来源于stack exchange,提问作者Robin Groot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 01:50:28