protected function createPreflightResponse(Request $request)
{
$response = new Response();
$response->headers->set('Access-Control-Allow-Origin', $request->headers->get('Origin'));
if ($this->allowCredentials) {
$response->headers->set('Access-Control-Allow-Credentials', 'true');
}
if ($this->maxAge) {
$response->headers->set('Access-Control-Max-Age', $this->maxAge);
}
$allowMethods = $this->isAllMethodsAllowed() ? strtoupper($request->headers->get('Access-Control-Request-Method')) : implode(', ', $this->allowMethods);
$response->headers->set('Access-Control-Allow-Methods', $allowMethods);
$allowHeaders = $this->isAllHeadersAllowed() ? strtolower($request->headers->get('Access-Control-Request-Headers')) : implode(', ', $this->allowHeaders);
$response->headers->set('Access-Control-Allow-Headers', $allowHeaders);
return $response;
}