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

登录功能POST请求400错误排查求助(附相关代码)

登录POST 400错误排查方案

核心问题:请求参数键名不匹配

前端发送的密码字段键是userPassword,但后端尝试读取req.body.password,这直接导致密码验证逻辑失效,返回400错误。

  • 前端login.js的fetch请求体:

    body: JSON.stringify({ username, userPassword }),
    

    这里发送的密码字段标识为userPassword

  • 后端userRoutes.js的密码验证逻辑:

    const validPassword = await userData.checkPassword(req.body.password);
    

    这里读取的密码字段标识为password,两者完全不匹配

修复步骤

二选一即可:

  1. 修改前端,统一密码字段键名:
    // 先把变量名改成password
    const password = document.getElementById('inputPassword').value.trim();
    // 再修改请求体
    body: JSON.stringify({ username, password }),
    
  2. 修改后端,适配前端的字段键名:
    const validPassword = await userData.checkPassword(req.body.userPassword);
    

其他潜在问题检查

  • 前端input类型不符合标准:inputUsername的type是form-input,应改为text,虽然不影响值的获取,但符合HTML规范:
    <input type="text" class="form-control" id="inputUsername" />
    
  • 查看后端日志:检查服务器端console.log(userData)和console.log(validPassword)的输出,确认:
    • 是否能正确查询到对应用户
    • 密码验证时传入的参数是否为空或异常

内容的提问来源于stack exchange,提问作者Bo Salinas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:09:52