Laravel Kernel middlewareGroups 适用于路由但不适用于分组路由
Laravel Kernel middlewareGroups works for routes but not for grouped routes
抱歉这个奇怪的标题。我不是母语人士。
所以,这是我的 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.
错误。
我该如何解决这个问题?
问题出在 Api\Login Controller
上的 getUser
方法。我不知道为什么会出现 No 'Access-Control-Allow-Origin' header is present on the requested resource.
错误,但我很高兴它已修复。
抱歉这个奇怪的标题。我不是母语人士。
所以,这是我的 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.
错误。
我该如何解决这个问题?
问题出在 Api\Login Controller
上的 getUser
方法。我不知道为什么会出现 No 'Access-Control-Allow-Origin' header is present on the requested resource.
错误,但我很高兴它已修复。