Rails 6、React 和 Rack-Cors

4

我有一个React应用程序,在localhost:3001上运行,并在localhost:3000上拥有一个Rails 6 API后端。

当我从React向Rails发出POST请求时,我不断收到CORS错误。Rails应用程序已经安装了Rack Cors。

我尝试将以下内容添加到initializers文件夹中的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。一点儿用都没有,我很困惑。


你的POST请求是什么样子的? - Ibraheem Ahmed
类似这样的内容{ "auth": { "email":"test@mail.com", "password":"test" } } - Peter McKinney
我也遇到了同样的问题。很不幸,我目前还没有解决方案,但似乎最新版本的rack-cors gem中可能存在一个bug,导致它拒绝在Rails 6中列入白名单的域名。这在这篇文章中提到过,他们建议将rack-cors固定到~> 0.4.1(但对我没有用)。还有这个问题,其中OP表示在新的Rails 6项目上无法工作,但在运行rai时可以正常工作。 - skyshell
1
@PeterMcKinney,你找到解决方法了吗? - Talha Meh
1个回答

0
allow do
 origins '*'
 resource '*', :headers => :any, :methods => :any
end

如果这不奏效,尝试放置。
origins 'localhost:3001'

希望能有所帮助


1
很遗憾,谢谢你的关注,但那已经阻止了所有方法,包括get。 - Peter McKinney
尝试在您的代码中仅将起源设置为“localhost:3001”。 - fazlu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接