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

Laravel 10部署至虚拟主机后出现CORS跨域问题求助

Laravel 10 部署后CORS跨域问题解决步骤

本地环境正常但部署后出现CORS错误,核心原因是后端未返回正确的跨域响应头,按以下步骤排查修复:

  • 检查Laravel CORS配置文件
    打开项目根目录下的config/cors.php:

    • 确认paths数组包含你的API路由前缀(比如'api/*'),确保所有需要跨域的接口都被覆盖
    • 将allowed_origins设置为前端部署域名['https://easylearning-seven.vercel.app'],测试阶段可临时用['*'](生产环境不推荐)
    • allowed_methods和allowed_headers建议设为['*'],或根据实际请求方法/需求精准配置
  • 确认全局中间件加载
    打开app/Http/Kernel.php,检查middleware数组中是否包含\Illuminate\Http\Middleware\HandleCors::class,若没有则添加,确保CORS中间件全局生效

  • 清除配置缓存
    部署完成后,在虚拟主机终端执行以下命令,避免旧配置缓存导致修改不生效:

    php artisan config:clear
    php artisan cache:clear
    
  • 虚拟主机额外配置(Laravel配置无效时)
    若上述配置后问题仍存在,可能是虚拟主机的Web服务器(Apache/Nginx)拦截了响应头,需手动添加:

    • Apache环境:在项目根目录的.htaccess中添加以下内容
      Header set Access-Control-Allow-Origin "https://easylearning-seven.vercel.app"
      Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
      Header set Access-Control-Allow-Headers "Content-Type, Authorization"
      
    • Nginx环境:在站点配置的server块中添加
      add_header Access-Control-Allow-Origin "https://easylearning-seven.vercel.app";
      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;
      }
      
  • 验证修复效果
    重新部署后端后,打开前端网站,用浏览器开发者工具的「网络」面板查看请求的响应头,确认Access-Control-Allow-Origin已正确返回且值为你的前端域名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:37:44