关于webman路由请求不经过中间件问题

爱吃鱼

问题描述

当应用插件里配置路由请求时用Route::get()请求不会经过配置的全局中间件。使用Route::any()请求是可以的。

程序代码或配置

config/route.php文件配置

use Webman\Route;
Route::group('/core', function () {
    //这个get请求不经过全局中间件
    Route::get('/admin/get-captcha', [plugin\admin\app\controller\AdminController::class, 'getCaptcha']);
    //any请求经过了全局中间件
    Route::any('/admin/get-captcha', [plugin\admin\app\controller\AdminController::class, 'getCaptcha']);

});

全局中间件配置config/middleware.php

<?php

return [
    // 全局中间件
    '' => [
        // ... 这里省略其它中间件
        plugin\admin\app\middleware\CorsMiddleware::class,
        plugin\admin\api\Middleware::class,
    ],
];
175 1 1
1个回答

walkor 打赏

跨域请求会先发一个options请求,options请求通过了才会发get请求,只允许get请求无法跨域,收不到get请求。
跨域要用any或者把options加上,这些文档有说。

×
🔝