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

React向Django发登录POST请求返回400 Bad Request如何解决?

错误原因
  • 核心问题:Login.jsx中的两个表单输入控件未添加name属性。你的onChange更新逻辑依赖e.target.name匹配formData中的email、password字段,缺少name属性时无法正确更新表单状态,导致提交到后端的参数始终为空,触发后端参数校验失败返回400。
  • 可优化问题:Redux login action的异常分支未打印错误信息,不利于后续接口问题排查。
修复步骤

1. 给表单输入框添加对应name属性

修改Login.jsx中两个Form.Control的代码,补充name字段:

<Form.Group className="mb-3" controlId="formBasicEmail">
    <Form.Control 
        type="email" 
        name="email"
        placeholder="example@email.com" 
        onChange={e => onChange(e)} 
        required 
    />
</Form.Group>
<Form.Group className="mb-3" controlId="formBasicPassword">
    <Form.Control 
        type="password" 
        name="password"
        placeholder="Password" 
        minLength='6' 
        onChange={e => onChange(e)} 
        required 
    />
</Form.Group>

2. (可选)添加接口错误日志

修改auth.jsx的异常捕获逻辑,打印错误信息方便排查:

catch (err){
    // 打印后端返回的错误详情
    console.log('登录失败:', err.response?.data || err.message)
    dispatch({
        type: LOGIN_FAIL,
    })
}

内容的提问来源于stack exchange,提问作者C-Bizz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:24:00