Laravel表单提交出现419 PAGE EXPIRED错误求助(PHP8.1/Laravel10.1)
Laravel 10表单提交419页面过期问题排查与解决
确认CSRF令牌正确渲染
打开浏览器开发者工具查看表单源码,确认存在<input type="hidden" name="_token" value="xxx">字段。确保@csrf指令放在<form>标签内部,{{ csrf_field() }}在Laravel 10中仍可使用,但更推荐@csrf。检查会话配置
- 查看
.env文件的SESSION_DRIVER,不要使用array驱动(仅用于测试,无法持久化会话),推荐用file或database。 - 确保
storage/framework/sessions目录有Web服务器用户(如www-data、nginx)的读写权限,执行命令:chmod -R 755 storage/framework/sessions。
- 查看
验证APP_KEY有效性
检查.env文件中的APP_KEY,若为空或不合法,执行php artisan key:generate重新生成,生成后用户需重新登录。排查路由中间件
确认表单提交的路由在routes/web.php中(默认包含web中间件组,该组包含会话和CSRF保护所需中间件)。若路由在api.php中,需手动添加VerifyCsrfToken中间件,或移至web.php。清除缓存
依次执行以下命令清理缓存:php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear检查浏览器Cookie设置
确保浏览器允许接收Cookie,Laravel的会话和CSRF令牌依赖Cookie存储,可关闭隐私模式后重试。
内容的提问来源于stack exchange,提问作者AhmedSamy
相关产品推荐
相关产品推荐

