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

Laravel 10部署000webhost后React前端调用API遇CORS错误求助

Laravel 10 + 000webhost部署下CORS错误的解决办法

针对你遇到的CORS问题,按以下步骤排查解决:

1. 确认中间件的正确位置

打开app/Http/Kernel.php,将\Illuminate\Http\Middleware\HandleCors::class添加到全局中间件数组$middleware的最顶部,而不是仅放在api或web中间件组里。这样所有请求(包括CORS预检用的OPTIONS请求)都会经过该中间件处理,避免预检请求被拦截。

2. 配置CORS允许规则

打开config/cors.php,根据你的前端环境修改核心配置项:

return [
    'paths' => ['api/*'], // 匹配所有API路由
    'allowed_methods' => ['*'], // 允许所有HTTP方法
    'allowed_origins' => ['https://你的React前端域名'], // 替换为实际前端地址,测试阶段可临时用['*']
    'allowed_origins_patterns' => [],
    'allowed_headers' => ['*'], // 允许所有请求头
    'exposed_headers' => [],
    'max_age' => 0,
    'supports_credentials' => true, // 若前端需携带Cookie或认证信息,设为true
];

3. 清除配置缓存

在000webhost的控制面板终端执行以下命令,确保新配置生效:

php artisan config:cache
php artisan cache:clear

Laravel会缓存配置文件,修改cors.php后必须清除缓存才能加载新规则。

4. 检查000webhost服务器配置

部分共享主机自带Apache/Nginx的CORS规则,可能和Laravel中间件冲突。若上述步骤无效,可在项目根目录的.htaccess中添加Apache兼容的CORS规则(仅当主机用Apache时):

Header set Access-Control-Allow-Origin "https://你的React前端域名"
Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"

注意:添加后需确保和Laravel的CORS配置不重复,避免冲突。

关于路由中间件的疑问

不需要在路由中单独指定HandleCors中间件:只要它在全局中间件数组中,所有路由会自动应用;若仅需API路由生效,也可将其加入$middlewareGroups['api']数组,但必须保证OPTIONS预检请求能被正确处理。

你遇到的Status code: (null)错误,通常是因为OPTIONS预检请求未得到正确响应,大概率是配置项错误或缓存未清除导致的,按上述步骤调整后基本能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:27:15