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

Laravel 10跨域问题求助:请求资源缺少Access-Control-Allow-Origin头

解决Laravel POST请求跨域(No 'Access-Control-Allow-Origin' header)问题
  • 确认CORS中间件已正确注册
    Laravel的CORS处理由HandleCors中间件负责,打开app/Http/Kernel.php检查:

    • 若要全局生效,确保\Illuminate\Http\Middleware\HandleCors::class在$middleware数组内;
    • 若仅针对API路由,确认它存在于$middlewareGroups['api']数组中(默认Laravel已配置,可再核对)。
  • 检查请求路径是否匹配paths配置
    你的cors.php里paths设为['api/*', 'sanctum/csrf-cookie'],如果POST请求的路径不在这个范围内(比如直接请求/form-submit而非/api/form-submit),Laravel不会处理跨域头。解决方法二选一:

    1. 调整请求路径到api/前缀下;
    2. 将目标路径添加到paths数组,例如:
    'paths' => ['api/*', 'sanctum/csrf-cookie', 'form-submit'],
    
  • 清除配置缓存
    修改cors.php后,Laravel的配置缓存可能没更新,导致新规则不生效。执行以下命令:

    php artisan config:clear
    php artisan cache:clear
    
  • 排查服务器层面的跨域拦截
    如果应用部署在Nginx等服务器上,检查服务器配置是否干扰了Laravel的CORS头输出:

    • 避免在Nginx中手动设置Access-Control-Allow-Origin,防止和Laravel的配置冲突;
    • 若服务器有自定义跨域规则,要么和Laravel的CORS配置保持一致,要么直接禁用服务器层面的跨域设置,交由Laravel中间件处理。
  • 带凭证请求的额外配置(按需)
    如果请求需要携带Cookie或HTTP认证信息,需将supports_credentials改为true,同时前端请求要开启withCredentials(比如Axios中设置withCredentials: true)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 06:15:17