1

Accept: None当某些浏览器请求我们的网站但指定了HTTP 标头(主要是移动设备,看起来像)时,我们已经看到 Airbrake 异常。经过大量研究,似乎大多数面向消费者的应用程序只是忽略 Accept HTTP 标头并发送 HTML,我们之前通过将其添加到我们的mime_types.rb文件中来解决此问题

Mime::Type.register "none", :html

但后来我们的电子邮件开始以纯文本形式发送,我相信因为我们正在重新定义text/html应该如何工作。是否有更好的解决方法,以便在有人发送Accept: None标头时我们仍然发送 HTML?

编辑:我忘了说,这是我跑步时得到rails c的,我想知道我是否正在重新定义 HTML。

$ rails c
/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant HTML
4

2 回答 2

1

另一个解决方法是将以下内容添加before_filter到您的ApplicationController

def fix_accept_headers_for_none
  if request.formats.include?("none")
    request.format = :html
  end
end
于 2013-04-19T19:17:55.127 回答
0

尝试

Mime::Type.register "text/html", :html, %w(none)

添加"none"mime_type_synonym_html

http://api.rubyonrails.org/classes/Mime/Type.html#method-c-register

于 2013-04-18T22:23:03.147 回答