Laravel 9 中无需配置 Alias 启用 CORS,因其已深度集成 fruitcake/laravel-cors,通过 HandleCors 中间件和 config/cors.php 驱动,自动服务发现注册,不依赖 Facade 别名;误配 alias 会因无对应 Facade 类而报错。

在 Laravel 9 中,不需要也不应该手动配置 Alias(别名)来启用 CORS。
这是因为 Laravel 9+ 已将 fruitcake/laravel-cors 的功能深度集成,不再依赖 Barryvdh\laravel-cors(该包已停止维护),且官方移除了对 aliases 数组的 CORS 相关配置需求。Laravel 9 默认使用 \Fruitcake\Cors\HandleCors 中间件,它通过服务容器自动注册,无需 Facade 别名支持。
Laravel Cloud(cloud.laravel.com)。此技能用于处理所有 Laravel Cloud 请求,包括搜索和读取数据。只要任务涉及 Laravel Cloud,即使用此技能。
为什么不用配 Alias?
– fruitcake/laravel-cors 不提供 Facade 类(如 Cors::class),所以没有对应 facade 需要映射到 aliases
– 所有功能通过中间件和配置文件驱动,不涉及静态门面调用
– Laravel 9 的自动服务发现机制会自动加载该包的服务提供者,无需手动在 config/app.php 中添加 providers 或 aliases
你真正需要做的两件事
✅ 发布并配置 config/cors.php
运行命令生成配置文件(即使 Laravel 9 内置,也建议执行以便自定义):php artisan vendor:publish --provider="Fruitcake\Cors\CorsServiceProvider" --tag="config"
然后编辑 config/cors.php,例如:
'paths' => ['api/*', 'sanctum/csrf-cookie']-
'allowed_origins' => ['http://localhost:3000', 'https://your-app.com'](禁用*配合supports_credentials => true) 'supports_credentials' => true
✅ 确认中间件已启用
检查 app/Http/Kernel.php 中的 $middlewareGroups['api'] 是否包含:\Fruitcake\Cors\HandleCors::class
这是默认行为,通常无需修改 —— 只需确保该行未被注释或删除。
如果误加了 Alias 会怎样?
添加类似 'Cors' => Fruitcake\Cors\Facade::class 的配置会报错,因为该包根本不存在 Fruitcake\Cors\Facade 类。强行添加会导致启动异常或类未找到错误。
总之,Laravel 9 的 CORS 配置是「零别名」的:专注中间件 + 配置文件,干净、安全、符合现代 Laravel 设计理念。

















