Lumen7.x 使用笔记(十一)跨域处理
1. 在 app\Http\Middleware 目录下新建 EnableCrossRequest.php 中间件
<?php
namespace App\Http\Middleware;
use Closure;
class EnableCrossRequest
{
/**
* Handle an incoming request.
*
* @param $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{$response = $next($request);
$origin = $request->server('HTTP_ORIGIN') ?: '';
// 验证当前域名是否在白名单中
// $allowOrigins = env('FARM_ALLOW_ORIGIN');
// if (!empty($allowOrigins)) {// $allowOrigins = array_unique(array_filter(explode(',', trim($allowOrigins))));
// // 配置了 env 多个以, 风格 且 当前域名不在白名单中 则 不再添加头信息
// if (!empty($allowOrigins) && in_array($origin, $allowOrigins, true)) {
// return $response;
// }
// }
$response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
return $response;
}
}
2. 修改 app\bootstrap.php 文件添加一下代码
$app->middleware([
// App\Http\Middleware\ExampleMiddleware::class
App\Http\Middleware\CustomFormat::class,
App\Http\Middleware\EnableCrossRequest::class // 跨域处理中间件
]);
正文完