You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10 CORS配置未生效,跨域请求遭拦截问题求助

问题排查与解决方法

1. 确保Allowed Origins包含完整协议头

浏览器发送的Origin是带http://或https://的完整域名,你的allowed_origins配置仅填写了域名,缺少协议导致匹配失败。修改config/cors.php:

'allowed_origins' => [
    'https://example1.com',
    'https://example2.com',
],

若需同时支持HTTP和HTTPS,可改用正则匹配:

'allowed_origins_patterns' => [
    '/^https?:\/\/example1\.com$/',
    '/^https?:\/\/example2\.com$/',
],

2. 调整CORS中间件执行顺序

将HandleCors中间件移至全局中间件数组的最顶部,确保它在所有其他中间件之前执行(若其他中间件提前返回响应,CORS头将无法被添加)。修改App\Http\Kernel.php:

protected $middleware = [
    \Illuminate\Http\Middleware\HandleCors::class, // 移至最前
    // 其他中间件...
];

3. 清除配置缓存

修改配置文件后必须清除Laravel配置缓存,否则旧配置会持续生效:

php artisan config:clear

4. 检查服务器层面的CORS设置

若应用部署在Nginx、Apache等服务器上,需确认服务器未配置独立的CORS规则(比如Nginx的add_header Access-Control-Allow-Origin),这类规则会覆盖Laravel中间件的设置。如有,需移除或调整服务器配置,交由Laravel的CORS中间件处理。

5. 验证路由缓存与路径匹配

虽然你设置了paths => ['*'],仍需确认请求的/my-endpoint未被路由分组中间件排除,可清除路由缓存确保配置生效:

php artisan route:clear

内容的提问来源于stack exchange,提问作者chishiki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 03:03:37