2015-11-02 64 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問題。