我有一个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]
我还需要做另一个步骤吗?
答案 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问题。