Я пишу приложение с парой API, которые должны быть доступны с любого хоста.Итак, до сих пор я обрабатывал это в своем application.rb
следующим образом:
config.action_dispatch.default_headers = {
'Access-Control-Allow-Origin' => '*'
}
Однако один из клиентов, который обращается к API, не позволяет получать данные из источников, где '*'
определено.Моя идея состояла в том, чтобы динамически установить разрешенный источник на тот, который запрашивает API.Примерно так:
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins ActionDispatch::Request.headers['Host']
resource '*',
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
Но так как cors.rb
является инициализатором, у него нет доступа к поступающим запросам. Есть ли способ сделать список источников динамическим, поэтому он всегда будетпросто включить запрос хоста?