laravel cors“类cors不存在”错误
Posted
技术标签:
【中文标题】laravel cors“类cors不存在”错误【英文标题】:laravel cors "Class cors does not exist" error 【发布时间】:2016-01-09 18:25:42 【问题描述】:我已关注 https://github.com/barryvdh/laravel-cors 在我的应用程序上启用 CORS。
当我刷新页面(REST 端点)时,我收到以下消息:-
Class cors does not exist
我运行了以下命令:-
composer require barryvdh/laravel-cors 0.7.x
并在我的 composer.json 中有以下行
"barryvdh/laravel-cors": "0.7.x"
Routes.php
Route::group(['middleware' => 'cors'], function($router)
$router->get('names/id', 'NameController@showEmpDetail');
$router->resource('names', 'NameController');
);
我猜我需要在某个地方调用包,例如使用包等。但我没有找到任何结果来帮助我。
请帮忙。
谢谢
【问题讨论】:
您是否将服务提供者'Barryvdh\Cors\HandleCors',
添加到您的config/app.php
文件中?
【参考方案1】:
对我来说,在 Laravel 7 中,下面的代码可以正常工作
您需要更改“app\Http\Kernel.php”文件 在 $routeMiddleware
你需要写:
'cors' => \Fruitcake\Cors\HandleCors::class,
代替
'cors' => \Barryvdh\Cors\Middleware\HandleCors::class,
如果您使用的是 API,那么
'api' => [
'throttle:60,1',
'bindings',
\Fruitcake\Cors\HandleCors::class,
],
【讨论】:
【参考方案2】:我想我弄乱了几个文件,然后收到了这个错误。
对我有用
1. Delete the vendor folder
2. composer install
3. php artisan serve
【讨论】:
【参考方案3】:只需从 app/Http/kernel.php 中受保护的 $middlewareGroups 中删除 cors
【讨论】:
【参考方案4】:在 app\Providers\RouteServiceProvider.php 中改变你的 mapApiRoutes() 方法,到这个,不要把'cors'放在前缀函数中,只把'api'作为参数
protected function mapApiRoutes()
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
【讨论】:
【参考方案5】:https://github.com/barryvdh/laravel-cors 的 readme.md 缺少 Laravel 5 的几个步骤。以下是完整说明:
composer require barryvdh/laravel-cors 0.7.x
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
或将vendor/barryvdh/laravel-cors/config/cors.php
复制到config/cors.php
config/app.php -> 'providers': Barryvdh\Cors\ServiceProvider::class
app/Http/Kernel.php -> $routeMiddleware: 'cors' => \Barryvdh\Cors\Middleware\HandleCors::class
php artisan cache:clear
(
现在 cors 中间件将适用于您的路线:
Route::group(['middleware' => 'cors'], function(Router $router)
$router->get('api', 'ApiController@index'); // <- your route here
);
【讨论】:
我可以确认这个答案仍然适用于 Laravel 5.5.19【参考方案6】:尝试添加
'cors' => \Barryvdh\Cors\Middleware\HandleCors::class,
到
/app/Http/Kernel.php $routeMiddleware
【讨论】:
【参考方案7】:你需要在终端运行这个命令
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
【讨论】:
以上是关于laravel cors“类cors不存在”错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel Lighthouse 在 Laravel 7 中出现 CORS 错误
错误:laravel/VueJS ajax 请求中的 CORS
如何解决 Laravel + Nuxt.js 中的 CORS 错误
本地主机上的 Access-Control-Allow-Origin(Laravel 和 Vue)CORS CORS 错误