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 Cors(中间件不工作)

使用 Laravel Lighthouse 在 Laravel 7 中出现 CORS 错误

错误:laravel/VueJS ajax 请求中的 CORS

如何解决 Laravel + Nuxt.js 中的 CORS 错误

在某些系统上的 Laravel 中出现 Cors 错误

本地主机上的 Access-Control-Allow-Origin(Laravel 和 Vue)CORS CORS 错误