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

Laravel 8.75+Livewire 2.12跨域错误解决咨询

解决方案

方案一:修复全站重定向(推荐,彻底避免跨域)

你的.htaccess重定向规则仅对根路径生效,导致访问https://www.example.com/xxx这类子路径时不会触发重定向,页面加载后Livewire请求会直接发往https://example.com,从而引发跨域。修改规则为全站重定向:

RewriteEngine On
# 强制HTTPS
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP:X-Forwarded-SSL} !on
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

# 重定向www域名到非www
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]

修改后记得清除浏览器缓存(301重定向会被浏览器缓存),再测试访问https://www.example.com的任意页面,确认都被重定向到https://example.com。

另外,检查Gandi的重定向配置是否覆盖所有路径,如果Gandi的重定向仅针对根路径,建议关闭该网页重定向,仅保留.htaccess的规则,避免冲突。

方案二:修复CORS配置(备选)

如果暂时无法实现全站重定向,需要修正CORS配置的问题:

  1. 修正语法错误:你的config/cors.php中allowed_origins的第二个域名缺少闭合引号,导致配置无效:
// 错误写法
'allowed_origins' => ['https://www.example.com', 'https://example.com],
// 正确写法
'allowed_origins' => ['https://www.example.com', 'https://example.com'],
  1. 确保CORS中间件覆盖Livewire路由:
    在app/Http/Kernel.php中,将\Fruitcake\Cors\HandleCors::class中间件添加到web中间件组的最前面,确保Livewire的AJAX请求被CORS中间件处理:
protected $middlewareGroups = [
    'web' => [
        \Fruitcake\Cors\HandleCors::class, // 放在最前面
        \App\Http\Middleware\EncryptCookies::class,
        // ...其他中间件
    ],
];
  1. 清除缓存并重启服务:
    执行以下命令确保配置生效:
php artisan config:clear
php artisan cache:clear
# 若使用OPcache,需重启PHP服务或清除OPcache缓存

完成以上配置后,测试https://www.example.com的Livewire请求是否能正常发送。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:17:22