Подтвердить что ты не робот

Получить контент Тип запроса

Чтобы найти тип входящего контента, docs say:

 request.headers["Content-Type"] # => "text/plain"

Но я обнаружил, что с помощью проб и ошибок это не работает, но это делает:

 request.headers["CONTENT_TYPE"]=='application/json'

Итак, какой самый надежный + переносимый способ сделать это?

4b9b3361

Ответ 1

Обычно я читал эти поля заголовка request.format и request.content_type.

EDIT: нашел немного больше об этом, что могло бы помочь: fooobar.com/questions/195054/...

Ответ 2

Вам не нужно разбирать строку content_type, Rails уже сделала это за вас. Просто проверьте:

request.format.symbol == :json

Ответ 3

Не нужно вызывать #symbol, так как равногружается:

request.format == :json

Ответ 4

Другой способ записи:

request.format.json?

Ответ 5

request.format == 'application/json'

Ответ 6

Для меня лучший способ проверить, является ли входящий запрос json:

    if request.content_type =~ /json/