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

Laravel Livewire发送动作遇语法错误,如何不关闭CSRF验证解决?

Laravel Livewire CSRF 错误解决方案(Unexpected token 错误)
  • 确认页面正确引入Livewire脚本
    确保页面末尾(</body>前)包含@livewireScripts指令,Livewire会通过这个指令自动注入CSRF令牌到请求头,不要将其放在<head>标签内。

  • 手动添加CSRF元标签(自动注入失效时)
    在页面<head>中添加元标签,确保Livewire能读取到有效令牌:

    <meta name="csrf-token" content="{{ csrf_token() }}">
    
  • 检查VerifyCsrfToken中间件配置
    不要关闭全局CSRF验证,打开app/Http/Middleware/VerifyCsrfToken.php:

    • 确保$except数组中没有错误添加Livewire路由(默认/livewire/*不需要加入例外)
    • 若项目使用自定义路由前缀,确认Livewire的请求路径(如/prefix/livewire/*)能被中间件正确处理
  • 清除缓存并重新生成密钥
    执行以下命令清理缓存,避免旧配置或密钥导致令牌不匹配:

    php artisan cache:clear
    php artisan config:clear
    php artisan view:clear
    php artisan key:generate
    
  • 排查服务器响应内容
    打开浏览器开发者工具(F12)→ Network标签,触发Livewire动作后查看请求响应:

    • 若返回419状态码或HTML错误页面(而非JSON),说明CSRF令牌验证失败,需回到前面步骤检查令牌注入逻辑
    • 错误中的Unexpected token通常是因为JSON解析器遇到了HTML内容导致的
  • 确认版本兼容性
    确保Laravel与Livewire版本匹配(如Laravel 10对应Livewire 3.x,Laravel 9支持Livewire 2.x/3.x),版本不兼容可能引发CSRF处理异常

内容的提问来源于stack exchange,提问作者K.b. Yudees

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 20:03:19