Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 将自定义中间件添加到组_Laravel - Fatal编程技术网

Laravel 将自定义中间件添加到组

Laravel 将自定义中间件添加到组,laravel,Laravel,“routes/api.php”中定义的路由应该使用“api”中间件组 但是,如果我添加自定义中间件(这里是“cors”),则不会触发此中间件。为什么 protected $middlewareGroups = [ 'web' => [ ... ], 'api' => [ 'throttle:60,1', 'bindings', '

“routes/api.php”中定义的路由应该使用“api”中间件组

但是,如果我添加自定义中间件(这里是“cors”),则不会触发此中间件。为什么

    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的中间件工作?