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

基于Clean-Laravel-Api的Laravel 8 API接口CORS跨域问题求解

解决步骤

  • 先移除冲突配置:删除你自定义的CORS中间件、删除public/index.php中手动加的header代码,避免多套跨域逻辑冲突导致响应头不生效。
  • 调整Fruitcake中间件顺序:在Infrastructure/Http/Kernel.php的全局中间件数组中,将\Fruitcake\Cors\HandleCors::class移到数组第一位,确保所有请求最先经过跨域处理,避免前面的中间件提前返回响应时不带跨域头。
  • 发布并配置Fruitcake配置文件:
    1. 执行命令发布配置:php artisan vendor:publish --tag="cors"
    2. 打开生成的config/cors.php,做以下修改:
      // 放行所有匹配路径的接口,可按你实际接口路径调整
      'paths' => ['api/*'],
      // 测试阶段先允许所有来源,上线后替换为实际业务域名
      'allowed_origins' => ['*'],
      'allowed_methods' => ['*'],
      'allowed_headers' => ['*'],
      // 不需要跨域传Cookie/凭证时保持false即可
      'supports_credentials' => false,
      
  • 清理Laravel缓存:执行php artisan config:clear && php artisan route:clear,确保新配置生效。
  • 排查web服务器配置:如果上述配置完成后依旧报错,检查Nginx/Apache是否拦截了OPTIONS预检请求,可直接用Postman发起OPTIONS请求到你的接口地址,验证响应头是否携带Access-Control-Allow-Origin字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:30:00