laravel 6 必须手动在 config/app.php 的 'providers' 数组中注册 fruitcake\cors\corsserviceprovider::class,否则 handlecors 中间件无法加载,cors 配置不生效。

Laravel 6 需要手动注册 fruitcake/laravel-cors 的服务提供者,因为该版本不支持自动服务发现(Laravel 7+ 才启用)。
配置服务提供者的具体步骤如下:
-
安装扩展包:
composer require fruitcake/laravel-cors
-
打开
config/app.php文件,在'providers'数组中手动添加服务提供者:Fruitcake\Cors\CorsServiceProvider::class,
✅ 推荐放在
'providers'数组靠前位置(例如紧接在App\Providers\AppServiceProvider::class之后),避免被其他中间件或配置覆盖。 -
(可选但建议)发布配置文件以便自定义规则:
php artisan vendor:publish --provider="Fruitcake\Cors\CorsServiceProvider"
这会生成
config/cors.php,后续可在其中设置allowed_origins、supports_credentials等关键项。 -
确保中间件已启用:
在app/Http/Kernel.php的$middlewareGroups['api']中加入:\Fruitcake\Cors\HandleCors::class,
或全局启用(如需所有请求都跨域):在
$middleware数组中添加同一条目。
⚠️ 注意:Laravel 6 默认未预置 HandleCors 中间件别名,所以必须确保 CorsServiceProvider 已注册,中间件类才能被正确解析。
总结关键点:
- Laravel 6 必须显式在
config/app.php的providers中注册Fruitcake\Cors\CorsServiceProvider::class - 不执行这一步,
HandleCors中间件将无法加载,CORS 配置不会生效 - 后续的路由中间件引用、
config/cors.php修改,都依赖此服务提供者正常启动











