Rails开发环境下CORS未阻止非允许源请求问题咨询
Rails CORS规则不生效问题排查与解决
可能的原因及对应解决步骤
确认
rack-corsgem配置正确
检查Gemfile中是否包含gem 'rack-cors',且没有被group :production do这类环境限制包裹。如果是刚添加的gem,务必运行bundle install完成安装。检查初始化文件位置
确保cors.rb放在config/initializers目录下——Rails仅会加载该目录下的初始化配置文件,路径错误会导致配置完全不生效。重启Rails开发服务器
修改初始化文件后,必须重启rails s进程,新的CORS配置才会被加载。这是最容易被忽略的关键步骤。验证请求是否触发浏览器CORS校验
Postman、curl等工具不遵循浏览器的CORS拦截逻辑,即使配置错误也能正常拿到响应。必须通过浏览器端的前端代码(如fetch、axios)发起请求,才能看到真实的CORS拦截效果。排查中间件干扰
部分开发环境中间件(如web-console、better_errors)可能修改响应头,覆盖CORS的Access-Control-Allow-Origin设置。可暂时禁用这类中间件测试,或直接查看响应头中的Access-Control-Allow-Origin值是否符合配置预期。确认配置语法无隐性错误
你的配置逻辑没问题,但可尝试简化配置测试,比如修正方法数组的空格问题:Rails.application.config.middleware.insert_before 0, Rack::Cors do allow do origins 'localhost:4000' resource '*', headers: :any, methods: [:get, :post, :put, :patch, :delete, :options, :head], expose: [:Authorization] end end
内容的提问来源于stack exchange,提问作者Toune17
相关产品推荐
相关产品推荐

