从Rails内容类型中删除charset

时间:2010-08-08 04:17:12

标签: ruby-on-rails

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

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

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

4 个答案:

答案 0 :(得分:3)

对于Rails 3/4,处理此问题的代码位于actionpack/lib/action_dispatch/http/response.rb中的ActionDispatch::Response.assign_default_content_type_and_charset!

设置response.headers['Content-Type']而不是response.content_type应该消除字符集。 Chubas的解决方案可以为所有回复做到这一点。


对于Rails 2,处理此问题的代码位于actionpack/lib/action_controller/response.rb中的content_type=charset=

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

答案 1 :(得分:2)

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

ActionController::Base.default_charset = nil

另外,将Content-Transfer-Encoding标题设置为binary会关闭字符集。

答案 2 :(得分:1)

这对我有用:

class MyController

  after_filter :remove_charset

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

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

this method,但对我不起作用。我不知道为什么,它甚至可能是一个错误。

答案 3 :(得分:0)

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

Private Sub Image1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
Range("A1").Value = "test1"
End Sub

Private Sub Image1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
Range("A1").Value = "test2"
End Sub

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