Symfony HttpFoundation 的跨域资源共享库

fruitcake/php-cors image

fruitcake/php-cors 统计

下载
48.5M
星标
161
开放问题
3
分支
10

在 GitHub 上查看 →

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

allowedMethodsallowedHeaders 选项不区分大小写。

你不需要同时提供 allowedOriginsallowedOriginsPatterns。如果传递的字符串之一匹配,则它被视为有效来源。allowedOrigins 中的通配符将被转换为模式。

如果 ['*'] 被提供给 allowedMethodsallowedOriginsallowedHeaders,则所有方法/来源/头都被允许。

注意:允许单个静态来源将提高可缓存性。

示例:使用库

<?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 年起作为独立库开发

fruitcake photo

你的 #1 开发团队

Cube

Laravel 新闻稿

加入 40k+ 其他开发人员,绝不错过新的技巧、教程等等。


Fruitcake Php Cors 相关文章

Diving into Cross-Origin Resource Sharing image

深入跨域资源共享

阅读文章
Laravel 9.2 Released image

Laravel 9.2 发布

阅读文章
Lucky Media logo

Lucky Media

立即获得 Lucky - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。付款、精美结账、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强你的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变你的 Laravel 应用程序。

MongoDB
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
Laravel Forge logo

Laravel Forge

轻松创建和管理你的服务器,并在几秒钟内部署你的 Laravel 应用程序。

Laravel Forge
Shift logo

Shift

正在运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,使你的应用程序保持最新。

Shift