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

Laravel 11配置CORS后Access-Control-Allow-Origin仍为*的问题

解决Laravel CORS配置不生效仍返回*的问题

排查与解决步骤

1. 确认CORS中间件全局启用

打开app/Http/Kernel.php,检查$middleware数组里是否包含\Illuminate\Http\Middleware\HandleCors::class。如果只把它加到$middlewareGroups的api组里,可能导致部分请求触发不了CORS处理,必须确保全局中间件里有这一项。

2. 检查服务器配置是否覆盖CORS头

如果用Nginx或Apache部署,别让服务器手动设置CORS头。比如Nginx的server块里如果有add_header Access-Control-Allow-Origin *;,直接删掉,让Laravel的CORS配置接管。

3. 清理Laravel配置缓存

修改cors.php后,旧的配置缓存可能没更新,执行以下命令:

php artisan config:clear
php artisan cache:clear

生产环境清理后可以重新生成缓存:php artisan config:cache,开发环境不用缓存配置更省心。

4. 简化allowed_origins配置

把cors.php里的allowed_origins改成精确匹配的前端域名,去掉冗余项:

'allowed_origins' => ['https://example.co.uk'],

模糊匹配*.example.co.uk可能带来不必要的冲突,精确指定更稳妥。

5. 排查自定义中间件干扰

如果项目里有自定义中间件或者第三方包的中间件,检查它们有没有手动设置Access-Control-Allow-Origin头,这类操作会直接覆盖Laravel的CORS配置,把相关代码删掉。

6. 确认前端请求配置

在Nuxt3的请求里确保带上了credentials,比如用useFetch时:

const { data } = await useFetch('https://api.example.co.uk/api/user', {
  credentials: 'include'
})

你的错误提示已经显示credentials mode是include,这一步快速确认即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:25:07