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

Laravel 8表单添加@csrf后出现403 Forbidden错误如何解决?

Laravel表单添加@csrf后提交报403 Forbidden的解决步骤
  • 确认路由配置合理性
    检查routes/web.php中的POST /recipe路由是否归属web中间件组,Laravel默认web.php下的所有路由都会自动加载web中间件,若你手动将该路由移动到api中间件组,或是自行移除了web中间件,会导致session、csrf校验逻辑失效触发403。同时确认路由拼写和表单action属性完全一致,无拼写错误。
  • 排查权限中间件拦截
    如果你的/recipe路由配置了auth、can之类的权限校验中间件,而当前账号未登录或者没有对应操作权限,也会返回403。可以临时注释掉该路由的所有额外中间件,测试提交是否正常。
  • 清理缓存与站点Cookie
    先后执行以下Artisan命令清理Laravel各类缓存:
    php artisan cache:clear
    php artisan config:clear
    php artisan view:clear
    php artisan session:clear
    
    清理完成后删除浏览器当前站点的Cookie和缓存,重新加载页面提交表单测试。
  • 修正Docker环境目录权限
    Docker运行环境下需要确保storage/和bootstrap/cache/目录对www-data用户有读写权限,权限不足会导致session无法写入,csrf令牌校验失败。可以进入Docker容器内部执行以下命令赋权:
    chown -R www-data:www-data storage/ bootstrap/cache/
    
  • 校验CSRF中间件配置
    检查app/Http/Middleware/VerifyCsrfToken.php文件,确认你没有误将/recipe路径加入CSRF排除列表,也没有其他配置错误。
  • 快速定位错误来源
    可以临时修改app/Exceptions/Handler.php的render方法,添加dd($exception)逻辑,提交表单后就能看到具体是哪个组件抛出的403异常,精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:27:05