Rails 4.2和跨域cookie允许读取cookie数据

时间:2015-11-02 23:55:25

标签: javascript ruby-on-rails ruby-on-rails-4 cookies

我有一个Rails 4.2应用程序正在从另一个域获取请求。我希望他们发送我们在javascript中设置的uuid。它适用于localhost但不适用于跨域。在我们的application_controller.rb中,我有:

class ApplicationController < ActionController::Base

 after_filter :cors_set_access_control_headers

  def cors_set_access_control_headers
    headers['Access-Control-Allow-Origin'] = '*'
    headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
    headers['Access-Control-Request-Method'] = '*'
    headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
  end

但是我无法得到像这样的值:

cookies[:uuid]

我还需要做另一个步骤吗?

1 个答案:

答案 0 :(得分:0)

没有您的日志,我没有任何具体的建议。

但是,使用Rack::CORS gem会更好。这提供了中间件,使得CORS请求的许可更加简单:

#Gemfile
gem "rack-cors"

#config/application.rb
config.middleware.insert_before 0, "Rack::Cors" do
  allow do
     origins '*'
     resource '*', headers: :any, methods: [:get, :post, :options]
   end
end

这将允许任何请求(来源)任何资源 - 使用上述细节(IE origins "google.com")要好得多

这应该可以解决您的CORS问题。