laravel全局中间件解决ajax请求跨域问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32080545/article/details/84641826

定义中间件CorsMiddleware
定义位置:

app/Http/Middleware/CorsMiddleware.php

CorsMiddleware内容

<?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)
    {
        if ($request->isMethod('OPTIONS')) {
            $response = response('', 200);
        } else {
            $response = $next($request);
        }
        if (!method_exists($response, 'header')) {
            return $response;
        }
        $response->header('Access-Control-Allow-Methods', 'HEAD, GET, POST, PUT, PATCH, DELETE, OPTIONS');
        $response->header(
            'Access-Control-Allow-Headers',
            'Content-Type, Content-Length, Authorization, Accept, X-Requested-With, Token'
        );
        $response->header('Access-Control-Allow-Origin', '*');
        $response->header('Access-Control-Max-Age', 86400);
        return $response;
    }
}

在app/Http/Kernel.php文件的$middleware中添加这个中间件

  protected $middleware = [
      .....
        \App\Http\Middleware\CorsMiddleware::class
    ];

猜你喜欢

转载自blog.csdn.net/qq_32080545/article/details/84641826