Laravel 将自定义中间件添加到组
“routes/api.php”中定义的路由应该使用“api”中间件组 但是,如果我添加自定义中间件(这里是“cors”),则不会触发此中间件。为什么Laravel 将自定义中间件添加到组,laravel,Laravel,“routes/api.php”中定义的路由应该使用“api”中间件组 但是,如果我添加自定义中间件(这里是“cors”),则不会触发此中间件。为什么 protected $middlewareGroups = [ 'web' => [ ... ], 'api' => [ 'throttle:60,1', 'bindings', '
protected $middlewareGroups = [
'web' => [
...
],
'api' => [
'throttle:60,1',
'bindings',
'cors'
],
];
protected $routeMiddleware = [
'cors' => \App\Http\Middleware\Cors::class,
...
]
只有在全局使用“cors”时,它才有效:
protected $middleware = [
\App\Http\Middleware\Cors::class
]
我只想和api组一起使用它
我的中间件:
<?php
namespace App\Http\Middleware;
use Closure;
class Cors
{
public function handle($request, Closure $next)
{
return $next($request)
->header(
'Access-Control-Allow-Origin',
'*'
)
->header(
'Access-Control-Allow-Headers',
'X-REQUESTED-WITH'
);
}
}
更新是否像下面那样有效<代码>'api'=>['throttle:60,1','bindings',\App\Http\Middleware\Cors::class],不,我也试过。有趣的是,如果我在浏览器中直接访问api路由,就会触发“handle”方法。但我的axios请求阻止了cors。我在handle方法中没有看到dd(“…”)的任何效果。正如我所说,如果在全局$middleware[]下,我的cors中间件可以工作。请尝试清除缓存。是否有其他特定于api的middleware可以工作?是否可以像下面这样进行更新<代码>'api'=>['throttle:60,1','bindings',\App\Http\Middleware\Cors::class],不,我也试过。有趣的是,如果我在浏览器中直接访问api路由,就会触发“handle”方法。但我的axios请求阻止了cors。我在handle方法中没有看到dd(“…”)的任何效果。正如我所说,我的cors中间件在全局$middleware[]下工作。请尝试清除缓存。是否有其他特定于api的中间件工作?