laravel cors"类cors不存在"错误

Sta*_*y J 1 cors laravel laravel-5

我已经关注https://github.com/barryvdh/laravel-cors在我的应用程序上启用CORS.

当我刷新页面(REST端点)时,我收到以下消息: -

Class cors does not exist
Run Code Online (Sandbox Code Playgroud)

我运行了以下命令: -

composer require barryvdh/laravel-cors 0.7.x
Run Code Online (Sandbox Code Playgroud)

并在我的composer.json中有以下行

"barryvdh/laravel-cors": "0.7.x"
Run Code Online (Sandbox Code Playgroud)

routes.php文件

Route::group(['middleware' => 'cors'], function($router){
    $router->get('names/{id}', 'NameController@showEmpDetail');
    $router->resource('names', 'NameController');
});
Run Code Online (Sandbox Code Playgroud)

我猜这个地方我需要调用包,比如使用包等等.但是我找不到任何结果来帮助我.

请帮忙.

谢谢

小智 8

尝试添加

 'cors' => \Barryvdh\Cors\Middleware\HandleCors::class,
Run Code Online (Sandbox Code Playgroud)

 /app/Http/Kernel.php $routeMiddleware
Run Code Online (Sandbox Code Playgroud)


Mir*_*ker 7

从 laravel 8 升级到 laravel 9 时,我遇到了同样的问题。因此,我首先删除 barryvdh/laravel-cors 软件包并安装 Fruitcake/laravel-cors。它解决了问题。

composer remove barryvdh/laravel-cors fruitcake/laravel-cors
composer require fruitcake/laravel-cors
Run Code Online (Sandbox Code Playgroud)

你可以查看Fruitcake/laravel-cors的 git 仓库。


Zac*_*ris 6

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.phpconfig/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
});
Run Code Online (Sandbox Code Playgroud)


Ste*_*lov 5

如果您升级到 Laravel 9、10 或更高版本,则步骤说明如下:https: //github.com/fruitcake/laravel-cors

简洁版本:

  1. 从你的composer.json中删除“fruitcake/laravel-cors”
  2. 将 app/Http/Kernel.php 中的 \Fruitcake\Cors\HandleCors::class 替换为 \Illuminate\Http\Middleware\HandleCors::class


小智 0

您需要在终端中运行此命令

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
Run Code Online (Sandbox Code Playgroud)