菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
55
0

Laravel6.X 跨域问题解决方案

原创
05/13 14:22
阅读数 530

简要说明:新项目比较小,所以尝试了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,
    ];

发表评论

0/200
55 点赞
0 评论
收藏
为你推荐 换一批