fruitcake / php-cors
为 Symfony HttpFoundation 提供的跨域资源共享库
v1.3.0
2023-10-12 05:21 UTC
Requires
- php: ^7.4|^8.0
- symfony/http-foundation: ^4.4|^5.4|^6|^7
Requires (Dev)
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-09 08:50:49 UTC
README
库和中间件,用于使您的 http-{foundation,kernel} 应用程序支持跨域资源共享。它试图实现 W3C 建议 的跨域资源共享。
注意:这是 https://github.com/asm89/stack-cors 的独立分支,与 CorsService 的选项兼容。
安装
使用 composer 需要 fruitcake/php-cors
。
用法
此包可以作为库使用。您可以使用它通过以下方式在您的框架中使用
选项
allowedMethods 和 allowedHeaders 选项不区分大小写。
您不需要同时提供 allowedOrigins 和 allowedOriginsPatterns。如果传入的字符串之一匹配,则被认为是有效的来源。允许的来源中的通配符将转换为模式。
如果向 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' => ['https://127.0.0.1', '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。
此包自 2022 年以来从 https://github.com/asm89/stack-cors 中分离出来,作为独立库开发。