Thinkphp6使用中间件解决跨域cors
2022-11-24 11:10:29
203
0

生成中间件
命令行输入

php think make:middleware Check

在最末的控制层创建文件。middleware.php和mimiddleware文件夹
一定要在最后的控制层,否则不生效
在这里插入图片描述
定义中间件

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

在middleware目录创建Cores.php

<?phpnamespace 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;}/* * 中间结束调度 */}
全部回帖(0)
加载中...