2015-11-02 68 views
1

我有一个Rails 4.2应用程序从另一个域获取请求。我希望他们发送一个我们在javascript中设置的uuid。它适用于本地主机,但不能跨域。在我们的application_controller.rb我:Rails 4.2和跨域cookie允许读取cookie数据

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] 

是否有另一步,我需要做什么?

回答

0

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

但是,使用Rack::CORS宝石会更好。这提供了中间件,这使得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问题。