Laravel 内核中间件组适用于路由,但不适用于分组路由

Posted

技术标签:

【中文标题】Laravel 内核中间件组适用于路由,但不适用于分组路由【英文标题】:Laravel Kernel middlewareGroups works for routes but not for grouped routes 【发布时间】:2017-08-06 00:28:17 【问题描述】:

对不起,奇怪的标题。我不是母语人士。 所以,这是我的routes/api.php 内容:

Route::post('login', 'Api\LoginController@login');

Route::group([
    'prefix' => 'restricted',
    'middleware' => 'auth:api',
], function () 
    // Authentication Routes...
    Route::post('logout', 'Api\LoginController@logout');

    Route::get('user', 'Api\LoginController@getUser');
);

你可能知道,这个文件中的每条路由默认都有api前缀。在我的Kernel.php 中,我为api 路由设置了一个中间件:

protected $middlewareGroups = [
    'web' => [
        ...
    ],

    'api' => [
        ...,
        \Barryvdh\Cors\HandleCors::class,
    ],
];

现在我的问题是,当我从一个单独的应用程序(angular.js 应用程序)中点击 myapp/api/login 时,它工作正常,但是当我尝试从 myapp/api/restricted/user 获取用户数据时,我得到一个 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

问题来自Api\Login Controller 上的getUser 方法。我不知道为什么会出现No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误,但我很高兴它已修复。

【讨论】:

以上是关于Laravel 内核中间件组适用于路由,但不适用于分组路由的主要内容,如果未能解决你的问题,请参考以下文章

未找到 laravel 类(适用于 localhost 但不适用于 DO 服务器)

Laravel,变量输出适用于 View::share 但不适用于 VIew::composer

CORS 中间件适用于 app.get 但不适用于 app.post

React useEffect useContext - 上下文适用于某些组件,但不适用于动态路由

JWT Auth 令牌适用于 Homestead,但不适用于生产服务器

使用 JWT 访问 Rest API 适用于 Postman 但不适用于 Axios