在我的Rails應用程序中,我構建了一項功能,允許用戶使用JavaScript代碼段將應用程序中的數據嵌入到其他網站上。單個Rails路由上的訪問控制 - 允許來源
我的JavaScript代碼段對我的Rails應用程序中返回原始JSON的路線發出GET請求。當代碼片段和JSON共享相同的域時,一切運行良好,但是當我將代碼片段嵌入到另一個站點時,我遇到了CORS問題。
使用解決方案I found here,我已經開始爲CORS配置我的Rails應用程序。
在我application_controller.rb
:
before_filter :add_allow_credentials_headers
def add_allow_credentials_headers
response.headers['Access-Control-Allow-Origin'] = request.headers['Origin'] || '*'
response.headers['Access-Control-Allow-Credentials'] = 'true'
end
def options
head :status => 200, :'Access-Control-Allow-Headers' => 'accept, content-type'
end
在我routes.rb
:
get 'embed_json' => 'application#options', :via => [:options]
然而,當我打我的瀏覽器上面的路線,應用程序不再返回的JSON對象只是一個空白屏幕。
對於如何最好地處理單個Rails路由上的CORS似乎存在許多衝突的方法。有沒有「Rails方式」來處理這個要求?