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

Rails部署Heroku+Netlify出现Access-Control-Allow-Credentials错误求助

问题解决方案

报错的根本原因是后端CORS配置的凭证权限和前端请求的凭证模式不匹配,你当前的cors.rb中credentials设为了false,但前端发起请求时用了credentials: 'include',导致预检请求校验失败,本地开发时前后端通常在同个域名下不会触发跨域校验,因此部署到不同平台才会暴露该问题。

第一步:修改后端CORS配置

修改config/initializers/cors.rb文件,将credentials的参数值改为true,修改后的配置如下:

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins "https://photo-sharer-kkirby16.netlify.app"

    resource "*",
             headers: :any,
             methods: [:get, :post, :put, :patch, :delete, :options, :head],
             credentials: true
  end
end

修改完成后重新部署你的Heroku后端服务。

第二步:回滚无效的前端修改

你之前尝试的几个前端配置不仅不能解决问题,还可能引发其他异常,请全部撤销:

  • 删除所有fetch请求中的mode: "no-cors"配置,该模式会限制前端读取接口返回内容,无法适配需要携带认证信息的业务场景
  • 删除所有fetch请求headers中手动添加的"Access-Control-Allow-Credentials": true配置,CORS相关响应头只能由后端返回,前端在请求中添加该字段没有任何作用,反而可能触发额外的跨域校验失败

config/application.rb中的config.hosts.clear配置不影响本次跨域问题,如果你没有其他自定义域名接入需求可以保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:15:01