Thinkphp6使用中间件解决跨域cors

  • Post author:
  • Post category:php


生成中间件

命令行输入

php think make:middleware Check

在最末的控制层创建文件。middleware.php和mimiddleware文件夹


一定要在最后的控制层,否则不生效


在这里插入图片描述

定义中间件

<?php
// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
    // \think\middleware\SessionInit::class
    app\api\middleware\Cores::class,
/*    app\api\middleware\Check::class,*/
];

在middleware目录创建Cores.php

<?php


namespace app\api\middleware;




class Cores
{

    public function handle($request, \Closure $next)
    {
        $response = $next($request);
        $origin = $request->header('Origin', '');

        //OPTIONS请求返回204请求
        if ($request->method(true) === 'OPTIONS') {
            $response->code(204);
        }
        $response->header([
            'Access-Control-Allow-Origin'      => $origin,
            'Access-Control-Allow-Methods'     => 'GET,POST,PUT',
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Allow-Headers'     => '*',
        ]);

        return $response;
    }
    /*
     * 中间结束调度
     */

}



版权声明:本文为a646639956原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。