Laravel 13 默认集成 fruitcake/laravel-cors,需在 config/cors.php 中用自然语言注释触发 Copilot 补全白名单配置,支持精确域名、子域名正则及路径限定,禁用通配符以保障安全。

Laravel 13 默认集成 fruitcake/laravel-cors,限制 API 只允许指定域名访问,关键不是靠 Copilot「猜」,而是明确告诉它你要什么——它才能准确补全 config/cors.php 中的白名单配置。
你不需要让 Copilot 写逻辑或判断安全性,只需在打开 config/cors.php 文件后,在合适位置输入清晰的自然语言注释(即“提示词”),Copilot 就会基于 Laravel 13 的标准结构和当前最佳实践,生成合规、可运行的配置。
以下是具体操作方式:
直接写注释触发 Copilot 补全
在 config/cors.php 的 return [] 数组内,光标定位到合适位置(比如 allowed_origins 下方),输入如下任一提示(中英文均可,推荐中文更稳):
// 允许前端域名:https://admin.yourapp.com 和本地开发 http://localhost:3000
✅ Copilot 通常会自动补全为:
'allowed_origins' => [
'https://admin.yourapp.com',
'http://localhost:3000',
],
⚠️ 注意:不要写
'allowed_origins' => ['*']—— 这在生产环境禁用凭据(如 Cookie、Authorization)时会失效,且不安全。
需要支持子域名?用正则模式(Copilot 也能跟上)
如果你要允许 *.yourapp.com(如 app.yourapp.com、dashboard.yourapp.com),先删掉 allowed_origins,再写提示:
// 允许所有 yourapp.com 子域名,启用 credentials,禁用通配符 origin
✅ Copilot 大概率输出:
用大白话操作当前项目的 Git/GitHub——配置 GitHub(装 gh CLI + 登录 + 建仓库)、备份、拉取下载、查询历史、回滚代码、管理分支。当用户用日常语言表达 git 意图时触发(例如"git备份一下""git下载项目""git拉下来""git看看我改了啥""git回退到上一个版本""git新建个分支搞新功能""git合并到主分支""git
'allowed_origins' => [],
'allowed_origins_patterns' => [
'^https?://(?:[a-z0-9\-]+\.)?yourapp\.com$',
],
'supports_credentials' => true,
? 关键细节它一般会带上:
- 正则以
^开头、$结尾,防止部分匹配(如防evil-yourapp.com) -
http?支持 http 和 https -
?:是非捕获分组,简洁高效 -
supports_credentials => true必须配套,否则浏览器拒绝带 Cookie 的请求
配合路径控制,让限制只生效于 API
确保 paths 明确限定范围,避免误放行 Web 页面:
// 仅对 /api/ 开头的路由启用 CORS 限制
✅ 补全示例:
'paths' => ['api/*', 'sanctum/csrf-cookie'],
这样,/login 或 /dashboard 等非 API 路由不会受此 CORS 规则影响。
不要依赖 Copilot 自动加中间件或改 Kernel
Copilot 可能建议往 app/Http/Kernel.php 加 \Fruitcake\Cors\HandleCors::class,但 Laravel 13 已默认启用该中间件(只要包存在),无需手动添加。如果你发现跨域没生效,优先检查:
- 是否清过配置缓存:
php artisan config:clear - 是否发布过配置:
php artisan vendor:publish --provider="Fruitcake\Cors\CorsServiceProvider" --tag="config"(首次使用才需)
不复杂但容易忽略。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










