Laravel 11 CORS (跨域)案例
前后端分离的开发模式中,经常遇到跨域问题。本篇文章将使用 Laravel 11 对跨域问题进行处理。
默认情况下,Laravel 11 中默认启用跨域中间件。
在 Laravel 中,CORS(跨域资源共享)中间件允许您的 web 应用程序安全地从不同的源(域)请求资源。这对 API 和网络服务非常有用。该中间件会检查并批准这些跨域请求,确保它们符合指定的安全政策。在 Laravel 中,可以轻松设置和配置 CORS 中间件,以控制哪些外部网站可以访问您的应用程序资源。
Laravel 11 可以自动响应 CORS OPTIONS HTTP 请求,使用选择的设置。OPTIONS 请求由 HandleCors 中间件处理,该中间件已包含在应用程序的全局中间件堆栈中。
有时,可能需要更改应用程序的 CORS 设置。可以通过使用 config:publish
artisan 命令发布 CORS 配置文件来做到这一点。
发布 cors 配置文件
1)生成 cors 配置文件
$ php artisan config:publish cors
该命令会在 config
目录下生成 cors.php
配置文件。
2)修改 cors.php
config/cors.php
<?php
return [
// 允许跨域的路径
'paths' => ['api/*', 'sanctum/csrf-cookie'],
// 允许所有请求方法
'allowed_methods' => ['*'],
// 允许所有源
'allowed_origins' => ['*'],
// 不使用特定的源模式
'allowed_origins_patterns' => [],
// 允许所有请求头
'allowed_headers' => ['*'],
// 不暴露特定头部
'exposed_headers' => [],
// 不缓存预检请求
'max_age' => 0,
// 允许发送凭据(如 cookies)
'supports_credentials' => true,
];
这样配置后,应用将允许任何来源的跨域请求。
请登录后再评论