topthink/think-cors
Composer 安装命令:
composer require topthink/think-cors
包简介
The Cors Library For ThinkPHP
README 文档
README
ThinkPHP跨域扩展
安装
composer require topthink/think-cors
配置
配置文件位于 config/cors.php
[
'paths' => ['api/*'],
...
]
paths 配置示例
允许 api 目录下的跨域请求,* 代表通配符。
[
'paths' => ['api/*']
]
当项目有多个域名时,支持为不同域名配置不同的目录。
[
'paths' => [
'www.thinkphp.cn' => ['api/*'],
'doc.thinkphp.cn' => ['user/*', 'article/*'],
]
]
allowed_origins 配置示例
当配置中有 * 时,代表不限制来源域。
[
'allowed_origins' => ['*'],
]
当我们需要限制来源域时,可以这么写。
[
'allowed_origins' => ['www.thinkphp.cn', 'm.thinkphp.cn'],
]
allowed_origins_patterns 配置示例
除了固定来源域,有时候我们还想要允许不固定但有规则的来源域,那么可以通过正则来实现。例如这里我们允许 thinkphp.cn 的所有二级域。
[
'allowed_origins_patterns' => ['#.*\.thinkphp\.cn#'],
]
allowed_methods 配置示例
当配置中有 * 时,代表不限制来源请求方式。
[
'allowed_methods' => ['*'],
]
当然我们也可以限制只允许 GET 和 POST 的跨域请求。
[
'allowed_methods' => ['GET', 'POST'],
]
allowed_headers 配置示例
当配置中有 * 时,代表不限制请求头。
[
'allowed_headers' => ['*'],
]
当然我们也可以只允许跨域请求只传递给我们部分请求头。
[
'allowed_headers' => ['X-Custom-Header', 'Upgrade-Insecure-Requests'],
]
max_age 配置示例
跨域预检结果是有缓存的,如果值为 -1,表示禁用缓存,则每次请求前都需要使用 OPTIONS 预检请求。如果想减少 OPTIONS 预检请求,我们可以把缓存有效期设置长些。
列如这里,我们把有效期设置为 2 小时(7200 秒):
[
'max_age' => 7200,
]
supports_credentials 配置示例
Credentials 可以是 cookies、authorization headers 或 TLS client certificates。当接口需要这些信息时,开启该项配置后,相关请求将会携带 Credentials 信息(如果有的话)。
[
'supports_credentials' => true,
]
topthink/think-cors 适用场景与选型建议
topthink/think-cors 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11.9k 次下载、GitHub Stars 达 14, 最近一次更新时间为 2023 年 10 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 topthink/think-cors 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 topthink/think-cors 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 11.9k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 15
- 点击次数: 7
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2023-10-11