我想在我的 Rails 应用程序中实现 CORS,所以我用谷歌搜索了rack-cors gem。我按照自述文件中的说明做了所有事情,相应地更新了 Gemfile 并更新application.rb
如下:
module YourApp
class Application < Rails::Application
# ...
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
end
end
但它没有用。不管我做了什么,在浏览器控制台中我不断收到消息:
XMLHttpRequest cannot load https://somewebsite.com. Origin http://0.0.0.0:3000 is not allowed by Access-Control-Allow-Origin.
在阅读了这篇博文和github 上的issue之后,我意识到 rack-cors 中间件在中间件堆栈中的位置可能很重要。所以我按照github问题中的说明做了:
module YourApp
class Application < Rails::Application
# ...
config.middleware.insert 0, Rack::Cors do
allow do
origins '*'
resource '*', :headers => :any, :methods => [:get, :post, :options]
end
end
end
end
之后,当我运行rake middleware
rack-cors 时,它确实位于堆栈的顶部。
但它仍然根本行不通。我不断收到同样的错误。任何人,请帮助。