从Rails内容类型中删除charset

当Content-Type包含charset行时,我有一个旧的愚蠢的服务请求我的应用程序失败

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

我不知道如何从我的rails响应中删除它。 每次我覆盖标题强制只是第一部分(Content-Type text / html)Rails将charset添加到标题…

对于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应该消除charset。 Chubas的解决方案适用于所有回复。


对于Rails 2,处理它的代码在content_type=charset= in actionpack / lib / action_controller / response.rb中 。

正如Carson的解决方案所描述的那样,设置ActionController::Base.default_charset = nil应该消除字符集。

我能够让它工作的唯一方法是设置默认字符集

 ActionController::Base.default_charset = nil 

此外,将Content-Transfer-Encoding标头设置为binary将关闭字符集。

这对我有用:

 class MyController after_filter :remove_charset def remove_charset headers['Content-type'] = "text/html" end end 

如果您正在进行开发,请确保清除浏览器的缓存。

有这种方法 ,但对我不起作用。 我不知道为什么,它甚至可能是一个错误。

把它放在控制器中为我做了:

 ActionDispatch::Response::default_charset = nil 

我放入我的基本控制器,将其从所有响应中删除。