首次搭建Rails API对接React遇CORS跨域问题,求技术支持
解决Rails API与React对接的CORS跨域错误
你的CORS错误根源在于Rails后端的跨域配置有误:config/initializers/cors.rb中origins的值末尾多了一个斜杠,导致无法匹配前端的请求来源http://localhost:3001,浏览器因此拦截了请求。
修复步骤:
修正CORS配置文件
打开config/initializers/cors.rb,将origins的值改为不带末尾斜杠的地址:Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins "http://localhost:3001" resource "*", headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head] end end重启Rails服务器
Rails初始化文件修改后必须重启后端服务,新的CORS配置才能生效。验证请求
你的React代码中API_URL配置正确,无需修改。重启React前端服务后,再次发起接口请求即可正常访问。
额外排查点(如果问题仍存在):
- 确认
Gemfile中已添加gem 'rack-cors',并执行过bundle install安装依赖; - 检查Rails服务器启动日志,确认
Rack::Cors中间件已成功加载。
内容的提问来源于stack exchange,提问作者CoolGuy
相关产品推荐
相关产品推荐

