简要说明:新项目比较小,所以尝试了6.0版本的Laravel框架。之前的项目用的是barryvdh/laravel-cors这个包,但是目前不支持6.X系统的,所以贴出这个项目的解决方案。
自定义中间件
第一步:创建中间件
php artisan make:middleware EnableCrossRequestMiddleware
第二步:编辑中间件
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);
}
}
第三步:注册中间件(全局)
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 协议》,转载必须注明作者和本文链接
空舟湖上~
——Jouzeyu