让控制器发回没有Content-Type标头的响应

时间:2010-10-27 09:58:15

标签: ruby-on-rails

我在控制器内部设置了一个Rails 3代理方法,如果允许用户,则使用Nginx的X-Accel-Redirect从远程服务器提供特定的URI。

不幸的是,Rails总是发送某种Content-Type标头,它优先于从上游服务器返回的标头。我已经尝试了各种方法“说服”响应,根本不包含任何Content-Type标题,但它们没有效果或引发异常。响应主体当然是空的,因为它无论如何都被忽略了。

我尝试的那些显而易见的没有用,因为价值仍然是“text / html; charset ......”:

response.headers['Content-type'] = ''
response.headers['Content-Type'] = nil
response.headers['Content-Type'] = ''
response.content_type = ''
response.content_type = nil

当然,设置特定的内容类型,如“image / gif”按预期工作,但控制器无法确定将要传送的内容,与远程服务器不同。

在没有该标题的情况下发送响应的最佳(最干净?)方式是什么?

1 个答案:

答案 0 :(得分:0)

这不是Rails,而是Rack添加了默认的text/html内容类型:

http://rack.rubyforge.org/doc/Rack/ContentType.html

您最好的选择是编写自己的Rack Middleware(或Monkey-patch Rack本身),根本不发送内容类型字段。

相关问题