2010-08-08 75 views
4

我有一個老笨服務做出請求,我的應用程序失敗時的內容類型包括字符集線從Rails的內容類型刪除字符集

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

,我不知道如何把它從刪除我的導軌響應。每次我重寫頭迫使僅僅是第一部分時間(內容類型爲text/html)Rails添加字符集的頭......

+0

我有完全相同的問題,Chuba的解決方案似乎不適合我。你找到了這個答案嗎? – Nick 2011-08-04 02:48:02

回答

2

對於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的解決方案爲所有響應都做到了這一點。


對於軌道2,它處理這是content_type=actionpack/lib/action_controller/response.rbcharset=的代碼。

正如Carson的解決方案所述,設置ActionController::Base.default_charset = nil應該消除字符集。

1

這爲我工作:

class MyController 

    after_filter :remove_charset 

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

如果你致力於開發,確保您清除瀏覽器的緩存。

this method,但沒有爲我工作。我不知道爲什麼,它甚至可能是一個錯誤。

2

我能得到它的工作的唯一辦法是通過設置默認字符集

ActionController::Base.default_charset = nil 

此外,Content-Transfer-Encoding頭設置爲binary將關閉字符集。

0

控制器把這個爲我做:

ActionDispatch::Response::default_charset = nil 

我把我的基地控制器從所有響應中刪除。