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

Rails 4.2 and cross-domain cookies to allow reading of cookie data

本文关键字:cookie 许读取 读取 数据 Rails      更新时间:2023-09-26

我有一个Rails 4.2应用程序,它正在从另一个域获取请求。我希望他们发送一个我们在javascript中设置的uuid。它在本地主机上工作,但不能跨域工作。在我们的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]

还有什么需要我做的吗?

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

但是,使用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问题。