Контроллер отправляет ответ без заголовка Content-Type - PullRequest
2 голосов
/ 27 октября 2010

Я настроил прокси-метод Rails 3 внутри контроллера, чтобы использовать Nginx 'X-Accel-Redirect для доставки определенного URI с удаленного сервера, если пользователю разрешено.

К сожалению, Railsвсегда отправляет какой-либо заголовок Content-Type, который имеет приоритет над заголовком, возвращенным с вышестоящего сервера.Я пробовал различные способы «убедить» ответ не включать вообще ни один заголовок Content-Type, но они не имеют никакого эффекта или вызывают исключение.Тело ответа, конечно, пустое, так как в любом случае оно игнорируется.

Очевидные, которые я пробовал, не сработали, поскольку значение остается "text / html; charset ...":

response.headers['Content-type'] = ''
response.headers['Content-Type'] = nil
response.headers['Content-Type'] = ''
response.content_type = ''
response.content_type = nil

Конечно, установка определенного типа контента, такого как «image / gif», работает как задумано, но контроллер не может точно сказать, какой контент будет доставлен, в отличие от удаленного сервера.

Каков наилучший (самый чистый?) Способ отправки ответа без этого заголовка?

1 Ответ

0 голосов
/ 27 октября 2010

Это не Rails, а Rack, который добавляет text/html тип контента по умолчанию:

http://rack.rubyforge.org/doc/Rack/ContentType.html

Ваш лучший вариант - написать свое собственное промежуточное программное обеспечение Rack (или саму стойку с обезьяньим патчем), чтобы вообще не отправлять поле типа контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...