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 - 上下文适用于某些组件,但不适用于动态路由