Laravel6.X 跨域问题解决方案
简要说明:新项目比较小,所以尝试了 6.0 版本的 Laravel 框架。之前的项目用的是
barryvdh/laravel-cors
这个包,但是目前不支持 6.X 系统的,所以贴出这个项目的解决方案。
自定义中间件#
第一步:创建中间件#
php artisan make:middleware EnableCrossRequestMiddleware
第二步:编辑中间件#
<?php
namespace App\Http\Middleware;
use Closure;
class EnableCrossRequestMiddleware{
/**
* @param $request
* @param Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
header('Content-Type: text/html;charset=utf-8');
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET,PUT,OPTIONS,DELETE'); // 允许请求的类型
header('Access-Control-Allow-Credentials: true'); // 设置是否允许发送 cookies
header('Access-Control-Allow-Headers: Content-Type,Access-Control-Allow-Origin,Access-token,Content-Length,Accept-Encoding,X-Requested-with, Origin,Access-Control-Allow-Methods'); // 设置允许自定义请求头的字段
return $next($request);
}
}
第三步:注册中间件(全局)#
<?php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
//other
\App\Http\Middleware\EnableCrossRequestMiddleware::class,
];
本作品采用《CC 协议》,转载必须注明作者和本文链接
好吧,可能是我安装的版本有误,大家就当这是一个简单的自定义跨域吧,哈哈
推荐文章: