📜  laravel cors 启用 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:34.719000             🧑  作者: Mango

Laravel Cors 启用 - PHP

在Laravel项目中使用CORS(跨来源资源共享)可以让我们的Web应用程序支持来自不同来源的API请求。对于跨域API请求,我们可能会遇到类似的错误:No 'Access-Control-Allow-Origin' header is present on the requested resource.

解决方法是启用CORS。这里我们介绍一个Laravel包,可以很容易地启用CORS。

安装Laravel-Cors

我们使用 barryvdh/laravel-cors 这个Laravel包。

在终端中,使用Composer进行安装:

composer require barryvdh/laravel-cors

安装成功后,打开config/app.php文件,将以下代码行添加到 providers 数组末尾:

'Barryvdh\Cors\ServiceProvider',

并在aliases数组末尾添加以下代码行:

'Cors' => 'Barryvdh\Cors\Facade',
配置Laravel-Cors

要配置Laravel-Cors,首先需要执行以下命令:

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"

这会将配置文件config/cors.php文件复制到你的项目中,你可以在其中配置Laravel-Cors。

下面是一个示例配置文件:

return [
    'allowedOrigins' => ['*'],
    'allowedHeaders' => ['*'],
    'allowedMethods' => ['GET', 'POST', 'PUT',  'DELETE'],
    'exposedHeaders' => [],
    'maxAge' => 0,
];

在上面的示例中,我们允许所有来源(因为allowedOrigins中有'*')。这在开发环境中很有用,但在生产环境中要注意保护API的安全性。

在Laravel中启用CORS

要想在Laravel中启用CORS,我们需要使用Cors类,因为我们在配置文件中设置了Facade别名。

下面是一个示例代码片段:

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Cors;

Route::get('/example', function () {
    $response = new Response();

    Cors::set($request, $response);

    return $response;
});

在上面的代码中,我们首先实例 Response类,然后在返回之前调用Cors::set()方法来启用CORS。

结论

现在你已经知道了如何在Laravel中启用CORS!使用Laravel-Cors,您可以轻松地启用CORS,以便您的Web应用程序支持跨域API调用。