Symfony HttpFoundation 的跨域资源共享库
fruitcake/php-cors 统计
- 下载
- 48.5M
- 星标
- 161
- 开放问题
- 3
- 分支
- 10
Fruitcake Php-cors 自述文件
CORS for PHP(使用 Symfony HttpFoundation)
库和中间件,为你的 http-{foundation,kernel} 启用跨域资源共享,使用应用程序。它试图实现 W3C 建议 以实现跨域资源共享。
注意:这是一个 https://github.com/asm89/stack-cors 的独立分支,与 CorsService 的选项兼容。
安装
使用 composer 要求 fruitcake/php-cors
。
使用
此包可用作库。你可以在你的框架中使用它,使用
选项
选项 | 描述 | 默认值 |
---|---|---|
allowedMethods | 匹配请求方法。 | [] |
allowedOrigins | 匹配请求来源。 | [] |
allowedOriginsPatterns | 使用 preg_match 匹配请求来源。 |
[] |
allowedHeaders | 设置 Access-Control-Allow-Headers 响应头。 | [] |
exposedHeaders | 设置 Access-Control-Expose-Headers 响应头。 | [] |
maxAge | 设置 Access-Control-Max-Age 响应头。 | 0 |
supportsCredentials | 设置 Access-Control-Allow-Credentials 头。 | false |
allowedMethods 和 allowedHeaders 选项不区分大小写。
你不需要同时提供 allowedOrigins 和 allowedOriginsPatterns。如果传递的字符串之一匹配,则它被视为有效来源。allowedOrigins 中的通配符将被转换为模式。
如果 ['*']
被提供给 allowedMethods、allowedOrigins 或 allowedHeaders,则所有方法/来源/头都被允许。
注意:允许单个静态来源将提高可缓存性。
示例:使用库
<?php use Fruitcake\Cors\CorsService; $cors = new CorsService([ 'allowedHeaders' => ['x-allowed-header', 'x-other-allowed-header'], 'allowedMethods' => ['DELETE', 'GET', 'POST', 'PUT'], 'allowedOrigins' => ['http://localhost', 'https://*.example.com'], 'allowedOriginsPatterns' => ['/localhost:\d/'], 'exposedHeaders' => ['Content-Encoding'], 'maxAge' => 0, 'supportsCredentials' => false,]); $cors->addActualRequestHeaders(Response $response, $origin);$cors->handlePreflightRequest(Request $request);$cors->isActualRequestAllowed(Request $request);$cors->isCorsRequest(Request $request);$cors->isPreflightRequest(Request $request);
许可证
在 MIT 许可证下发布,请参阅 LICENSE.
此包从 https://github.com/asm89/stack-cors 分离出来,并自 2022 年起作为独立库开发