ubuntu

Laravel在Ubuntu上如何处理跨域请求

小樊
43
2025-12-12 16:22:57
栏目: 智能运维

在Laravel中处理跨域请求,你可以使用Laravel的内置功能或者安装第三方包来实现。下面是两种方法的详细步骤:

方法一:使用Laravel内置功能

  1. 打开你的Laravel项目根目录下的app/Http/Middleware文件夹,创建一个新的中间件文件,例如CorsMiddleware.php

  2. CorsMiddleware.php文件中,编写以下代码:

<?php

namespace App\Http\Middleware;

use Closure;

class CorsMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->headers->set('Access-Control-Allow-Origin', '*');
        $response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
        $response->headers->set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, X-Auth-Token, Origin, Authorization');

        return $response;
    }
}
  1. 接下来,打开app/Http/Kernel.php文件,将新创建的中间件添加到$middleware数组中:
protected $middleware = [
    // ...
    \App\Http\Middleware\CorsMiddleware::class,
];

现在,你的Laravel应用程序已经允许跨域请求。

方法二:使用第三方包

  1. 安装fruitcake/laravel-cors包:
composer require fruitcake/laravel-cors
  1. 打开config/app.php文件,在providers数组中添加以下内容:
Fruitcake\Cors\HandleCors::class,
  1. app/Http/Kernel.php文件中,将HandleCors中间件添加到全局中间件数组或者特定路由组中:
protected $middleware = [
    // ...
    \Fruitcake\Cors\HandleCors::class,
];

或者,你可以将其添加到特定路由组中:

Route::middleware(['cors'])->group(function () {
    // 你的跨域路由
});
  1. (可选)如果你想自定义CORS设置,可以在config/cors.php文件中进行配置。如果文件不存在,你可以运行以下命令生成一个默认的配置文件:
php artisan vendor:publish --provider="Fruitcake\Cors\HandleCors"

现在,你的Laravel应用程序已经允许跨域请求。

0
看了该问题的人还看了