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