isMethod('OPTIONS')) { return response('', 204, $this->corsHeaders($request)); } $response = $next($request); foreach ($this->corsHeaders($request) as $key => $value) { $response->headers->set($key, $value); } return $response; } private function corsHeaders(Request $request): array { // Get the origin from the request, default to '*' if not present $origin = $request->header('Origin', '*'); return [ 'Access-Control-Allow-Origin' => $origin, 'Access-Control-Allow-Methods' => 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers' => 'Content-Type, X-Requested-With', 'Access-Control-Max-Age' => '86400', 'Access-Control-Allow-Credentials' => 'true', ]; } }