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

Laravel 8 同路径GET路由正常但POST路由不生效问题求助

问题根因

你遇到的现象本质是POST表单请求被Laravel拦截后触发了重定向,重定向后的GET请求走到了首页GET路由,接口调试工具不会自动跟随重定向/不会触发Web中间件的跳转逻辑,因此能正常命中POST路由。最常见的诱因是CSRF令牌缺失。

排查&解决步骤

  • 第一步:补全CSRF令牌
    Laravel默认给web中间件组的所有POST、PUT、DELETE请求开启CSRF校验,未携带合法令牌的请求会抛出419异常,默认处理逻辑是重定向到上一页。你只需要在Blade的form标签内部添加@csrf指令即可:
    <form action="{{url('/')}}" method="post">
        @csrf
        <!-- 其他表单字段 -->
    </form>
    
  • 第二步:验证请求链路
    打开浏览器开发者工具的「网络」面板,勾选「持久化日志」选项后提交表单,查看第一条请求的请求方法是否为POST、状态码是否为419/302,如果符合就是CSRF校验失败导致的跳转。
  • 第三步:清理路由缓存
    若修改路由后未更新缓存,也可能出现路由匹配异常,执行以下命令清理路由缓存即可:
    php artisan route:clear
    
  • 第四步:排查前端逻辑
    检查页面是否有JS代码拦截了表单提交事件,存在强制修改请求方法为GET、或者跳转首页的逻辑。

内容的提问来源于stack exchange,提问作者XtyLish Sam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:57:03