I\'m just about to pull my hair out... I\'ve been trying to enable CORS in this Rails app since the morning and it just doesn\'t work. I\'ve tried this, using Rack Cors Gem
You should use rack cors
It provides a nice DSL, to use in your config/application.rb
, instead of the messy header work and before filters.
A very permissive would be as follows, but of course, you'll have to tailor it a bit.
use Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: :any
end
end
Rack::Cors provides support for Cross-Origin Resource Sharing
Steps to enable rackcors :
1.add gem to your Gemfile:
gem 'rack-cors'
2.Add below code to config/application.rb
# if you are using Rails 3/4
config.middleware.insert_before 0, "Rack::Cors" do
allow do
origins '*'
resource '*', :headers => :any, :methods => :any
end
end
# if you are using Rails 5
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: :any
end
end
Here's what worked for me:
Add this to Gemfile: gem 'rack-cors'
then bundle install
Create a new file /config/initializers/cors.rb
Inside the file place the following:
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :patch, :put]
end
end
That's it!
FYI the instructions came directly from here