在 Laravel 5.1 中启用 CORS
使用 Laravel 5.1 开发 API 时,启用跨域资源共享 (CORS) 对于允许请求至关重要来自不同的起源。虽然存在各种 CORS 库,但本文重点介绍专门为 Laravel 5.1 定制的自定义中间件实现。
CORS 中间件
要启用 CORS,请在以下位置创建一个中间件类app/Http/Middleware/CORS.php:
use Closure; class CORS { public function handle($request, Closure $next) { header("Access-Control-Allow-Origin: *"); $headers = [ 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE', 'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin' ]; if ($request->getMethod() == "OPTIONS") { return Response::make('OK', 200, $headers); } $response = $next($request); foreach ($headers as $key => $value) { $response->header($key, $value); } return $response; } }
注册中间件
在 app/Http/Kernel.php 中注册您的中间件:
protected $routeMiddleware = [ 'cors' => 'App\Http\Middleware\CORS', ];
使用中间件
要在路由中使用 CORS 中间件,请添加 'middleware' =>; 'cors' 添加到路由定义中:
Route::get('example', ['middleware' => 'cors', function () { return 'example'; }]);
Laravel ^8.0 Update
在 Laravel 8.0 及以上版本中,您需要导入控制器命名空间并使用类名如下:
use App\Http\Controllers\ExampleController; Route::get('example', [ExampleController::class, 'dummy'])->middleware('cors');
按照以下步骤,您可以轻松启用Laravel 5.1 API 中的 CORS,允许来自不同域的请求并提供安全灵活的 API 环境。
以上是如何在 Laravel 5.1 中实现自定义 CORS 中间件?的详细内容。更多信息请关注PHP中文网其他相关文章!