在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中文網其他相關文章!