Laravel–CORS 擴展包完美解決前後端分離應用跨域請求
- 2020 年 2 月 12 日
- 筆記
述 跨域請求的解決方案有 CORS 和 JSONP(了解更多明細可以參考這篇教程),但是 JSONP 有個致命缺點 —— 僅支援 GET 請求,所以推薦使用 CORS(Cross-origin resource sharing,跨域資源共享),何況在 Laravel 生態中已經有了 laravel-cors 這樣強大的擴展包,拿來即用,只需要配置一個中間件即可上手,非常方便。 本片文章講解兩種跨域方式
1. laravel-cors 安裝 在項目根目錄下通過 Composer 安裝擴展包:
composer require barryvdh/laravel-cors 1 Laravel 5.5 及以上版本支援自動包發現,無需註冊服務提供者,Laravel 5.4 及以下版本需要手動在 config/app.php 中註冊服務提供者:
BarryvdhCorsServiceProvider::class, 1 使用 如果想要全局支援跨域請求,可以在 app/Http/Kernel.php 的 $middleware 數組中添加 HandleCors 中間件:
protected $middleware = [ BarryvdhCorsHandleCors::class, ]; 1 2 3 如果你只想在特定路由中應用 CORS,可將其添加到對應的路由/中間件分組:
protected $middlewareGroups = [ 'web' => [ // … ], 'api' => [ // … BarryvdhCorsHandleCors::class, ], ]; 1 2 3 4 5 6 7 8 9 laravel 官網文檔地址:https://laravelacademy.org/post/9273.html