我在控制器内部设置了一个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”按预期工作,但控制器无法确定将要传送的内容,与远程服务器不同。
在没有该标题的情况下发送响应的最佳(最干净?)方式是什么?
答案 0 :(得分:0)
这不是Rails,而是Rack添加了默认的text/html
内容类型:
http://rack.rubyforge.org/doc/Rack/ContentType.html
您最好的选择是编写自己的Rack Middleware(或Monkey-patch Rack本身),根本不发送内容类型字段。