Improved CrossDomainMiddleware by allowing the same origin that was requested

This commit is contained in:
Alejandro Celaya 2016-07-19 22:38:14 +02:00
parent 839329d627
commit e28e984278

View File

@ -41,18 +41,17 @@ class CrossDomainMiddleware implements MiddlewareInterface
} }
// Add Allow-Origin header // Add Allow-Origin header
$response = $response->withHeader('Access-Control-Allow-Origin', '*'); $response = $response->withHeader('Access-Control-Allow-Origin', $request->getHeader('Origin'));
if ($request->getMethod() !== 'OPTIONS') { if ($request->getMethod() !== 'OPTIONS') {
return $response; return $response;
} }
// Add OPTIONS-specific headers // Add OPTIONS-specific headers
$headers = [ foreach ([
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', // TODO Should be based on path 'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS', // TODO Should be based on path
'Access-Control-Max-Age' => '1000', 'Access-Control-Max-Age' => '1000',
'Access-Control-Allow-Headers' => $request->getHeaderLine('Access-Control-Request-Headers'), 'Access-Control-Allow-Headers' => $request->getHeaderLine('Access-Control-Request-Headers'),
]; ] as $key => $value) {
foreach ($headers as $key => $value) {
$response = $response->withHeader($key, $value); $response = $response->withHeader($key, $value);
} }