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

Laravel8后端API与React前端跨域CORS问题求助

Laravel 8 解决跨域CORS问题的方法

针对你遇到的前端https://front.shops-ci.com访问Laravel后端https://backend.vente.ci时的CORS错误,直接从Laravel后端配置入手解决:

1. 配置CORS允许的源

打开项目根目录下的config/cors.php文件,修改allowed_origins字段,将你的前端域名加入允许列表:

'allowed_origins' => ['https://front.shops-ci.com'],

如果需要临时允许所有域名(生产环境不推荐),可以设置为['*']。

同时确保allowed_methods和allowed_headers配置满足你的请求需求,比如:

'allowed_methods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
'allowed_headers' => ['*'],

2. 启用CORS中间件

打开app/Http/Kernel.php,将Laravel自带的CORS处理中间件加入api中间件组:

protected $middlewareGroups = [
    'api' => [
        \Illuminate\Http\Middleware\HandleCors::class,
        // 保留其他已有的api中间件
    ],
];

3. 清除配置缓存

运行以下命令确保配置生效:

php artisan config:cache
php artisan route:cache

备选方案:Nginx层面配置CORS

如果Laravel配置不生效,也可以在后端服务器的Nginx配置中添加CORS响应头:

server {
    # 其他已有配置...

    location /api {
        add_header Access-Control-Allow-Origin https://front.shops-ci.com;
        add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS";
        add_header Access-Control-Allow-Headers "Content-Type, Authorization";

        if ($request_method = OPTIONS) {
            return 204;
        }

        # 转发请求到Laravel的配置...
        try_files $uri $uri/ /index.php?$query_string;
    }
}

修改后重启Nginx服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:51:04