Enable CORS in lumen

前端 未结 2 1674
伪装坚强ぢ
伪装坚强ぢ 2020-12-19 05:40

I have API developed using lumen. I can get request using postman. But when request using Jquery.ajax it is not working. So I need to know how to enable CORS in lumen API.

相关标签:
2条回答
  • 2020-12-19 06:38

    Consider creating a CorsMiddleware.php file with the following code. Find detail here.

      <?php namespace App\Http\Middleware;
    
        use Closure;
    
        class CorsMiddleware
        {
         /**
         * Handle an incoming request.
         *
         * @param  \Illuminate\Http\Request  $request
         * @param  \Closure  $next
         * @return mixed
         */
        public function handle($request, Closure $next)
        {
            $headers = [
                'Access-Control-Allow-Origin'      => '*',
                'Access-Control-Allow-Methods'     => 'POST, GET, OPTIONS, PUT, DELETE',
                'Access-Control-Allow-Credentials' => 'true',
                'Access-Control-Max-Age'           => '86400',
                'Access-Control-Allow-Headers'     => 'Content-Type, Authorization, X-Requested-With'
            ];
    
            if ($request->isMethod('OPTIONS'))
            {
                return response()->json('{"method":"OPTIONS"}', 200, $headers);
            }
    
            $response = $next($request);
            foreach($headers as $key => $value)
            {
                $response->header($key, $value);
            }
    
            return $response;
        }
    }
    

    After saving it in your middleware folder, enable it by adding it to your bootstap/app.php file, on the list of you middleware like this

    $app->middleware([
        ...
        App\Http\Middleware\CorsMiddleware::class // Add this
    
    ]);
    

    I hope it helps.

    0 讨论(0)
  • 2020-12-19 06:38

    I'd recommend using the CORS package by Barry vd. Heuvel: https://github.com/barryvdh/laravel-cors#lumen

    It has configurable and supports Pre-flight request handling for ajax.

    0 讨论(0)
提交回复
热议问题