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