09
MarPhp-cors is a library and middleware enabling cross-origin resource sharing for your HTTP {foundation, kernel}
using the application. It attempts to implement the W3C Recommendation for cross-origin resource sharing.
You have to run this command for the installation via composer:
composer require fruitcake/php-cors
This package can be used as a library. You can use it in your framework using:
Stack middleware:
<?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);
Option | Description | Default value |
---|---|---|
allowedMethods | Matches the request method. | [] |
allowedOrigins | Matches the request origin. | [] |
allowedOriginsPatterns | Matches the request origin with preg_match. | [] |
allowedHeaders | Sets the Access-Control-Allow-Headers response header. | [] |
exposedHeaders | Sets the Access-Control-Expose-Headers response header. | [] |
maxAge | Sets the Access-Control-Max-Age response header. | 0 |
supportsCredentials | Sets the Access-Control-Allow-Credentials header. | false |
The allowedMethods
and allowedHeaders
options are case-insensitive
.
You don’t need to provide both allowedOrigins
and allowedOriginsPatterns
. If one of the strings passed matches, it is considered a valid origin. A wildcard in allowedOrigins
will be converted to a pattern.
If [’*’] is provided to allowedMethods
, allowedOrigins
or allowedHeaders
all methods/origins/headers
are allowed.
For more details visit its documentation & source code on Github
Published at : 09-03-2022
I am a highly results-driven professional with 12+ years of collective experience in the grounds of web application development especially in laravel, native android application development in java, and desktop application development in the dot net framework. Now managing a team of expert developers at Codebrisk.
Launch project