Удалить кодировку из типа содержимого Rails - PullRequest
6 голосов
/ 08 августа 2010

У меня старая дурацкая служба, отправляющая запрос в мое приложение, которая перестала работать, когда Content-Type включает строку charset

Content-Type    text/html; charset=utf-8

и я не знаю, как убрать это из моего ответа рельсов. Каждый раз, когда я переопределяю заголовки, заставляя только первую часть (Content-Type text / html), Rails добавляет кодировку в заголовок ...

Ответы [ 4 ]

3 голосов
/ 03 января 2014

Для Rails 3/4 код, который обрабатывает это, находится в ActionDispatch::Response.assign_default_content_type_and_charset! в actionpack / lib / action_dispatch / http / response.rb .

Установка response.headers['Content-Type'] вместоresponse.content_type должен устранить кодировку.Решение Chubas делает это для всех ответов.


Для Rails 2 код, обрабатывающий это, находится в content_type= и charset= в actionpack / lib / action_controller / response.rb .

Как описывает решение Карсона, установка ActionController::Base.default_charset = nil должна исключить кодировку.

2 голосов
/ 25 января 2012

Единственный способ заставить его работать - установить кодировку по умолчанию

ActionController::Base.default_charset = nil

Кроме того, установка заголовка Content-Transfer-Encoding на binary отключит кодировку.

1 голос
/ 08 августа 2010

Это сработало для меня:

class MyController

  after_filter :remove_charset

  def remove_charset
    headers['Content-type'] = "text/html"
  end
end

Если вы работаете над разработкой, обязательно очистите кеш браузера.

Существует этот метод , но он не работает для меня. Я не знаю почему, это может быть даже ошибка.

0 голосов
/ 21 ноября 2017

Поместив это в контроллер, я сделал это:

ActionDispatch::Response::default_charset = nil

Я вставил в свой базовый контроллер, чтобы удалить его из всех ответов.

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