如何在Laravel 5.1 中啟用CORS
將CORS(跨域資源共享)整合到Laravel 中可以讓授予跨域伺服器原始API 呼叫。本文將引導您在 Laravel 5.1 版本中啟用 CORS 的具體方法。
Laravel 的CORS 中間件
// app/Http/Middleware/CORS.php namespace App\Http\Middleware; use Closure; class CORS { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { header("Access-Control-Allow-Origin: *"); // ALLOW OPTIONS METHOD $headers = [ 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE', 'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin' ]; if($request->getMethod() == "OPTIONS") { // The client-side application can set only headers allowed in Access-Control-Allow-Headers return Response::make('OK', 200, $headers); } $response = $next($request); foreach($headers as $key => $value) $response->header($key, $value); return $response; } }
註冊CORS 中介軟體
建立中間件後,將其註冊到app/Http/Kernel.php檔案:// app/Http/Kernel.php protected $routeMiddleware = [ //other middlewares 'cors' => 'App\Http\Middleware\CORS', ];
在路由中應用CORS
最後,在要允許交叉的路由中使用cors 中間件原始API 呼叫:Route::get('example', array('middleware' => 'cors', 'uses' => 'ExampleController@dummy'));
Laravel註^8.0
在 Laravel 8.0 及以上版本中,由於命名空間更改,請務必使用以下語法來註冊 CORS 中間件:以上是如何在 Laravel 5.1 啟用 CORS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!