从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
我放入我的基本控制器,将其从所有响应中删除。