laravel 8 has been blocked by CORS policy: Response to preflight request doesn't pass access control check: code example

Example 1: Angular Laravel has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response.

namespace App\Http\Middleware;
use Closure;
class Cors
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);
        $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, DELETE');
        $response->header('Access-Control-Allow-Headers', $request->header('Access-Control-Request-Headers'));
        $response->header('Access-Control-Allow-Origin', '*');
        return $response;
    }
}

Example 2: laravel Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on

Step 1 : Create Cors middleware.
php artisan make:middleware Cors

Step 2 : Add below lines in handle function before return.
  //header('Access-Control-Allow-Origin:  *');
header('Access-Control-Allow-Origin:  http://localhost:4200');
header('Access-Control-Allow-Headers:  Content-Type, X-Auth-Token, Authorization, Origin');
header('Access-Control-Allow-Methods:  POST, PUT');

Step 3 : Register the middileware in app/Http/Kernel.php file
  
  Add below line in $middleware array 

 \App\Http\Middleware\Cors::class,

Step 4 : Now we have to call the middleware in app/Http/Kernel.php file
  Add below line in $routeMiddleware array 

'cors' => \App\Http\Middleware\Cors::class,



Using the * works rather than the host origin. Was missing the Cors.php middleware in the array as well

Tags:

Misc Example