mehmetik / cors
`CorsSupport`类是一个用于管理跨域资源共享(CORS)的库,也是一个在堆栈应用程序中操作HTTP请求和响应的中间件。
1.0
2022-12-27 13:58 UTC
Requires
- php: ^7.2|^8.0
- symfony/http-foundation: ^4|^5|^6
- symfony/http-kernel: ^4|^5|^6
Requires (Dev)
- phpunit/phpunit: ^7|^9
- squizlabs/php_codesniffer: ^3.5
README
此包提供了一个库和堆栈中间件,用于在Stack应用程序中处理跨域资源共享(CORS)。
安装
要安装此包,请通过Composer要求它。
composer require mehmetik/cors
用法
此包可以用作库或作为stack中间件。
选项
allowedMethods和allowedHeaders选项不区分大小写。
您不需要同时提供allowedOrigins和allowedOriginsPatterns。如果传入的字符串之一匹配,则视为有效源。
如果向allowedMethods、allowedOrigins或allowedHeaders提供['*']
,则允许所有方法/来源/头。
示例:使用库
<?php use mehmetik\Cors\CorsSupport; $cors = new CorsSupport([ 'allowedHeaders' => ['x-allowed-header', 'x-other-allowed-header'], 'allowedMethods' => ['DELETE', 'GET', 'POST', 'PUT'], 'allowedOrigins' => ['https://'], 'allowedOriginsPatterns' => ['/localhost:\d/'], 'exposedHeaders' => false, 'maxAge' => false, 'supportsCredentials' => false, ]); $cors->addActualRequestHeaders(Response $response, $origin); $cors->handlePreflightRequest(Request $request); $cors->isActualRequestAllowed(Request $request); $cors->isCorsRequest(Request $request); $cors->isPreflightRequest(Request $request);
示例:使用堆栈中间件
<?php use mehmetik\Cors\Cors; $app = new Stack\Builder(); $app->push(new Cors($app, [ 'allowedHeaders' => ['x-allowed-header', 'x-other-allowed-header'], 'allowedMethods' => ['DELETE', 'GET', 'POST', 'PUT'], 'allowedOrigins' => ['https://'], 'allowedOriginsPatterns' => ['/localhost:\d/'], 'exposedHeaders' => false, 'maxAge' => false, 'supportsCredentials' => false, ]));
许可
此包受MIT许可证的许可。有关详细信息,请参阅LICENSE文件。