【问题标题】:laravel cors "Class cors does not exist" errorlaravel cors“类cors不存在”错误
【发布时间】: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 文件中?

标签: laravel laravel-5 cors


【解决方案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"
            

            【讨论】:

              猜你喜欢
              • 2021-05-27
              • 2019-09-27
              • 2023-03-13
              • 2018-06-10
              • 2021-02-15
              • 2015-09-30
              • 2021-10-07
              • 2014-06-01
              • 2021-07-09
              相关资源
              最近更新 更多