laravel 8 配置 api 路由 cors 的核心是将 \fruitcake\cors\handlecors::class 显式添加至 $middlewaregroups['api'] 中,确保其位于 throttle:api 和 substitutebindings::class 之后;需安装 fruitcake/laravel-cors 包、发布并正确配置 config/cors.php,其中 paths 设为 ['api/*']、allowed_origins 明确列出前端域名、supports_credentials 设为 true 时禁止使用 ['*'],且路由必须定义在 routes/api.php 中。

Laravel 8 配置 API 路由的 CORS,核心是让 api/* 路由组正确加载并执行 CORS 中间件,同时确保响应头精准生效。不推荐用全局中间件粗暴覆盖所有请求,应聚焦于 API 路由本身。
确认 API 路由组已启用 HandleCors 中间件
打开 app/Http/Kernel.php,检查 $middlewareGroups['api'] 数组是否包含:
-
\Fruitcake\Cors\HandleCors::class(Laravel 8 默认未内置,需手动添加) - 该行必须位于
throttle:api和SubstituteBindings::class之后,顺序错误可能导致中间件被跳过
安装并发布 CORS 配置文件
运行以下命令安装扩展包并生成配置:
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
composer require fruitcake/laravel-corsphp artisan vendor:publish --provider="Fruitcake\Cors\CorsServiceProvider"
完成后编辑 config/cors.php,关键项示例:
-
'paths' => ['api/*', 'sanctum/csrf-cookie']—— 确保覆盖所有 API 接口 -
'allowed_origins' => ['http://localhost:3000', 'https://your-app.com']—— 生产环境禁用['*'] -
'supports_credentials' => true—— 若前端需传 Cookie 或 Token,此项必须开启,且allowed_origins不能为通配符 -
'allowed_headers' => ['Content-Type', 'Authorization', 'X-Requested-With']—— 明确列出比['*']更安全
验证路由是否真正命中 API 组
确保你的接口定义在 routes/api.php 中,例如:
Route::get('/users', [UserController::class, 'index']);- 该路由自动属于
api中间件组,无需额外加->middleware('api') - 若使用子域名(如
api.example.com),必须用Route::domain('api.example.com')->group(...)包裹,并确保 Nginx/Apache 已将该子域请求正确转发至 Laravel
调试与验证技巧
浏览器开发者工具 Network 标签页中查看响应头:
- 正常应看到
Access-Control-Allow-Origin、Access-Control-Allow-Methods等字段 - 若缺失,检查
php artisan config:clear和php artisan cache:clear是否执行 - 预检请求(OPTIONS)失败?说明中间件未生效或
paths未匹配到当前 URL
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










