【问题标题】:Rails 6, React, Rack-Cors [duplicate]Rails 6,React,Rack-Cors [重复]
【发布时间】:2020-09-03 15:41:45
【问题描述】:

我有一个在 localhost:3001 上运行的 react 应用程序和一个在 localhost:3000 上运行的 rails 6 api 后端

当我从 react 到 rails 发布时,我不断收到 cors 错误。 rails 应用有 Rack Cors。

我已尝试将其添加到初始化程序文件夹中的 cors.rb 中。

Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'
    resource '*', headers: :any, methods: :any
  end
end

没用,我也尝试将它添加到application.rb和config.ru。注意有效,我很困惑。

【问题讨论】:

  • 您的发帖请求是什么样的?
  • 类似这样的 { "auth": { "email":"test@mail.com", "password":"test" } }
  • 我也面临同样的问题。不幸的是,我目前没有解决方案,但似乎最新版本的 rack-cors gem 中可能存在一个错误,导致它拒绝 Rails 6 中的白名单域。this article 中提到了它,他们在那里建议将 rack-cors 固定到 ~> 0.4.1(这对我不起作用)。还有this issue,OP 表示它不适用于新的 Rails 6 项目,但在运行 rai 时有效
  • @PeterMcKinney 你找到解决办法了吗?

标签: ruby-on-rails reactjs cors ruby-on-rails-6 rack-cors


【解决方案1】:
allow do
 origins '*'
 resource '*', :headers => :any, :methods => :any
end

如果这不起作用,请尝试放置

origins 'localhost:3001'

希望对你有帮助

【讨论】:

  • 不幸的是,不过,谢谢,这停止了所有方法。包括获取
  • 然后尝试仅将 origins 'localhost:3001' 放入您的代码中
  • 不,不走运。 Access to XMLHttpRequest at 'localhost:3000/user_token' from origin 'http://localhost:3001' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
猜你喜欢
  • 2016-07-13
  • 2013-11-25
  • 2019-11-08
  • 2015-09-11
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 2021-07-25
  • 2020-04-29
相关资源
最近更新 更多