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

Laravel 5.5部署GoDaddy服务器提交表单遇TokenMismatchException求助

解决Laravel 5.5在GoDaddy服务器上的CSRF TokenMismatchException问题

嘿,我之前在GoDaddy部署Laravel应用时也碰到过一模一样的问题,给你几个针对性的排查和解决方向,应该能搞定:

  • 检查表单中的CSRF令牌是否正确生成
    确保你的联系表单里包含了Laravel 5.5支持的@csrf指令(或者旧版的{{ csrf_field() }}),打开页面源码查看是否有一个名为_token的隐藏input字段,并且它的值是存在的。如果是AJAX提交表单,一定要在请求头里带上X-CSRF-TOKEN,可以通过页面中<meta name="csrf-token" content="{{ csrf_token() }}">这个标签获取令牌值,再设置到AJAX请求的header中。

  • 调整会话配置的关键参数
    GoDaddy的服务器环境有些特殊,默认的会话配置可能不适用:

    1. 检查config/session.php里的'path'项,默认的'/tmp'在GoDaddy上可能存在权限问题,可以改成storage/framework/sessions,同时确保这个文件夹的权限设置为755(别用777,不安全且部分服务器会限制这类权限目录)。
    2. 确认'domain'配置,如果你的应用有子域名,要设置为.yourdomain.com(注意前面的点),单域名的话可以留空或者设置为当前域名。
    3. 检查.env文件中的SESSION_DRIVER,如果是database驱动,要确保已经执行过php artisan session:table和迁移命令,会话表正常存在。
  • 彻底清除缓存和会话文件
    缓存或者旧的会话文件也可能导致令牌不匹配:

    • 如果有SSH权限,直接在服务器上执行以下命令:
      php artisan cache:clear
      php artisan config:clear
      php artisan route:clear
      rm -rf storage/framework/sessions/*
      
    • 没有SSH权限的话,可以临时添加一个清除缓存的路由,上传到服务器后访问一次,之后记得删除这个路由:
      Route::get('/clear-all-cache', function() {
          \Illuminate\Support\Facades\Artisan::call('cache:clear');
          \Illuminate\Support\Facades\Artisan::call('config:clear');
          \Illuminate\Support\Facades\Artisan::call('route:clear');
          \Illuminate\Support\Facades\File::cleanDirectory(storage_path('framework/sessions'));
          return '缓存和会话已清除!';
      });
      
  • 检查GoDaddy的PHP和缓存配置
    GoDaddy默认的一些配置可能干扰CSRF令牌的正常传递:

    1. 在public/.htaccess文件中添加以下内容,禁用页面缓存,避免令牌被缓存:
      <IfModule mod_headers.c>
          Header set Cache-Control "no-cache, no-store, must-revalidate"
          Header set Pragma "no-cache"
          Header set Expires 0
      </IfModule>
      
    2. 确认SESSION_SECURE_COOKIE的设置:如果你的网站启用了HTTPS,这个值应该设为true;如果是HTTP则设为false,GoDaddy的HTTPS跳转有时候会导致cookie的secure属性不匹配,进而丢失会话。
  • 确保表单提交的协议和方法正确

    • 表单的提交方法必须是POST(CSRF验证只针对POST/PUT/DELETE等非GET请求),别误用了GET方法。
    • 尽量保持整个网站使用统一的协议(要么全HTTP,要么全HTTPS),跨协议提交表单会导致会话cookie丢失,从而引发令牌不匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:51