首頁 > 後端開發 > php教程 > 如何在 Laravel 5.1 中實作自訂 CORS 中間件?

如何在 Laravel 5.1 中實作自訂 CORS 中間件?

Patricia Arquette
發布: 2024-12-22 16:21:09
原創
294 人瀏覽過

How to Implement Custom CORS Middleware in Laravel 5.1?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板