Laravel所有表单提交均出现419页面过期错误求助
Laravel线上部署表单提交419页面过期错误解决方法
结合你提供的.env文件,以下是针对性的解决步骤:
1. 修正基础环境配置
当前.env中APP_ENV=local是本地开发环境配置,线上必须切换为生产环境,同时关闭调试模式避免敏感信息泄露:
APP_ENV=production APP_DEBUG=false APP_URL=https://fieldservicesnationwide.com # 移除末尾斜杠
2. 修复Session相关配置与权限
- 若保留
SESSION_DRIVER=file,需确保服务器上storage/framework/sessions目录具备读写权限,执行以下命令设置:chmod -R 755 storage/ chown -R www-data:www-data storage/ # 根据服务器运行用户调整,比如apache用户 - 确认
SESSION_DOMAIN配置匹配线上域名,当前fieldservicesnationwide.com若为主域名无需修改,若使用子域名需调整为对应值(如sub.fieldservicesnationwide.com)
3. 清除线上缓存与配置
部署后必须执行以下命令,确保新配置生效:
php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear
4. 确认CSRF令牌正确使用
所有提交表单必须包含CSRF令牌字段,在Blade表单中添加:
@csrf
若使用AJAX提交,需在请求头携带令牌:
<!-- 在页面头部添加meta标签 --> <meta name="csrf-token" content="{{ csrf_token() }}">
// AJAX请求中设置请求头 $.ajax({ url: '/your-submit-url', method: 'POST', headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, // 其他参数... });
5. 适配HTTPS环境
线上使用HTTPS,需确保Laravel识别HTTPS请求,可在.env中添加:
FORCE_HTTPS=true
内容的提问来源于stack exchange,提问作者Usama Akhtar
相关产品推荐
相关产品推荐

