Как добавить пользовательский заголовок HTTP? - программирование
Подтвердить что ты не робот

Как добавить пользовательский заголовок HTTP?

Я хочу добавить пользовательские заголовки HTTP в приложение Ruby on Rails, которое в настоящее время размещено на Heroku.

4b9b3361

Ответ 1

Использование:

response.headers['HEADER NAME'] = 'HEADER VALUE'

либо в конкретном методе, либо в методе before_filter вашего контроллера приложений, в зависимости от того, нужно ли это добавить в конкретный или во все ваши ответы.

ОБНОВЛЕНИЕ для Rails 5 - 24 февраля 2018 года

Как отмечает @BrentMatzelle в комментариях, для Rails 5:

response.set_header('HEADER NAME', 'HEADER VALUE')

Ответ 2

В рельсах 5 работает следующее решение (в методах действий)

response.set_header("Header-Name", "Header value")

Ссылка: edgeapi

Ответ 3

В рельсах 4 установите заголовки ответов в файле application.rb или соответствующих файлах среды. После этого вы можете переопределить значение заголовка, где бы вы ни находились в контроллере. Подробнее см. url.

Ответ 4

В Rails 3 или выше просто

headers['Header-Name'] = 'header value'

работает в контроллерах. Это даже рекомендуемый способ; согласно документации,

Ответ - это в основном детали реализации платформы Ruby on Rails, и его никогда нельзя использовать непосредственно в контроллерах. Контроллеры должны использовать методы, определенные в ActionController::Base. Например, если вы хотите установить MIME-тип содержимого HTTP-ответов, используйте ActionController::Base#headers вместо Response#headers.

И это все еще верно в Rails 6.0.

Ответ 5

В рельсах 4 работает следующее:

class API::V1::BaseController 
  after_action :set_version_header

  protected
    def set_version_header
        response.headers['X-ComanyName-Api-Version'] = 'V1'
    end
end