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

Laravel开发中登录表单无法提交POST请求问题求助

Laravel登录表单无法提交POST请求排查结果

经核对代码,你提供的路由配置、控制器逻辑本身没有配置错误,问题全部出在前端表单部分,共有3处直接导致请求无法正常提交/处理的错误,1处可选优化项:

  • 提交按钮类型配置错误:登录按钮当前设置为type="button",该类型按钮默认不会触发表单提交行为,需修改为type="submit"。
  • 缺失CSRF校验令牌:Laravel 所有Web路由下的POST请求默认强制校验CSRF令牌,当前表单未添加Blade提供的@csrf指令,请求会被419状态码直接拦截,无法进入控制器逻辑。
  • 输入框未配置name属性:邮箱、密码两个核心输入框仅设置了id属性,未配置name属性,后端无法从请求体中读取到提交的账号、密码参数,即使请求成功发送也会直接触发校验失败。
  • 可选优化:当前邮箱字段的错误提示绑定的是username字段,请根据你LoginRequest中定义的认证字段名(email或username),同步调整input的name属性值、$errors判断的字段名,保证三者一致,否则校验失败时错误提示无法正常展示。

修正后的表单代码

<form role="form" method="post" action="{{ route('login.perform') }}">
  @csrf
  <div class="form-group">
    <label class="form-control-label">Email address</label>
    @if ($errors->has('email'))
      <span class="text-danger text-left">{{ $errors->first('email') }}</span>
    @endif
    <div class="input-group input-group-merge">
      <div class="input-group-prepend">
        <span class="input-group-text"><i class="fas fa-user"></i></span>
      </div>
      <input type="email" name="email" class="form-control" id="input-email" placeholder="name@example.com">
    </div>
  </div>
  <div class="form-group mb-4">
    <div class="d-flex align-items-center justify-content-between">
      <div>
        <label class="form-control-label">Password</label>
        @if ($errors->has('password'))
          <span class="text-danger text-left">{{ $errors->first('password') }}</span>
        @endif
      </div>
      <div class="mb-2">
        <a href="#!" class="small text-muted text-underline--dashed border-primary">Lost password?</a>
      </div>
    </div>
    <div class="input-group input-group-merge">
      <div class="input-group-prepend">
        <span class="input-group-text"><i class="fas fa-key"></i></span>
      </div>
      <input type="password" name="password" class="form-control" id="input-password" placeholder="Password">
      <div class="input-group-append">
        <span class="input-group-text">
          <a href="#" data-toggle="password-text" data-target="#input-password">
            <i class="fas fa-eye"></i>
          </a>
        </span>
      </div>
    </div>
  </div>
  <div class="mt-4">
    <button type="submit" class="btn btn-sm btn-primary btn-icon rounded-pill">
      <span class="btn-inner--text">Sign in</span>
      <span class="btn-inner--icon"><i class="fas fa-long-arrow-alt-right"></i></span>
    </button>
  </div>
</form>

注:如果你自定义的登录逻辑使用username而非email作为登录账号字段,将上述代码中email相关的name属性、错误判断字段名替换为username即可。

内容的提问来源于stack exchange,提问作者Michael T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 08:39:29