新建中间件
php artisan make:middleware EnableCrossRequestMiddleware
app/Http/Kernel.php 文件下新增
protected $middleware = [
...
\App\Http\Middleware\EnableCrossRequestMiddleware::class,
];
protected $routeMiddleware = [
...
'cross'=> \App\Http\Middleware\EnableCrossRequestMiddleware::class,
];
EnableCrossRequestMiddleware文件
public function handle($request, Closure $next)
{
//允许所有人访问
$response = $next($request);
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, Accept');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS,DELETE');
$response->header('Access-Control-Allow-Credentials', 'false');
return $response;
//指定IP访问
$response = $next($request);
$origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
$allow_origin = [
'http://127.0.0.1:8080',//允许访问
];
if (in_array($origin, $allow_origin)) {
$response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN');
$response->header('Access-Control-Expose-Headers', 'Authorization, authenticated');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
}
return $response;
}
路由
//让每个接口都经过中间件
Route::group(['middleWare'=>['cross']],function(){
Route::get('/test','TestController@index');
})
本文链接:https://www.cution.cn/41.html