我可以获得令牌,但在安全路由中显示 CORS 错误

问题描述 投票:0回答:2

我想将 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解决问题?

php laravel cors backend single-page-application
2个回答
0
投票

尝试使用默认设置,然后在必要时尝试修改它。 无需添加其他中间件,因为 cors.php 具有 Laravel 团队从 Laravel 7 引入的默认配置。


0
投票

安装

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

© www.soinside.com 2019 - 2024. All rights reserved.