我想将 Laravel 与 Angular 集成。我可以获得令牌,因为我在 cors.php 中添加了这个
'paths' => ['api/*', 'sanctum/csrf-cookie', **'oauth/*'**],
但是任何其他安全路由都不起作用(显示 CORS 错误)。我试过使用中间件
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, X-Token-Auth, Authorization');
我在 Kernel.php 中注册了它,并在内核中添加了它。最后我在我的路由中添加了这个中间件
Route::group(['middleware' => ['cors', 'json.response']], function () {
Route::get('/user', 'UserController@user')->middleware(['auth:api']);
});
但是我一直都有cors错误。知道我该如何解决这个问题吗?
如何用cors解决问题?
尝试使用默认设置,然后在必要时尝试修改它。 无需添加其他中间件,因为 cors.php 具有 Laravel 团队从 Laravel 7 引入的默认配置。
fruitcake/laravel-cors
composer require barryvdh/laravel-cors
在
config/app.php
-> providers
Barryvdh\Cors\ServiceProvider::class,
然后在终端
php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"
最后在
app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
// ...
\Barryvdh\Cors\HandleCors::class,
],
'api' => [
// ...
\Barryvdh\Cors\HandleCors::class,
],
];
或
升级Laravel最新版本,支持框架自身跨issue