如何在Rails中设置“连接:关闭”标头

问题描述:

要解决上传文件时经常挂起的Safari问题,我需要向我的Rails服务器发出请求,并让它返回一个带有“Connection:close”标头的空主体。有关此修复程序的更多详细信息,请参阅here如何在Rails中设置“连接:关闭”标头

到目前为止,我曾尝试:

def close 
    return head :ok, {'Connection' => 'close'} 
end 

def close 
    response.headers['Connection'] = 'close' 
    render :nothing => true 
end 

def close 
    response.headers['Connection'] = 'close' 
    return head :ok 
end 

这些方法似乎都不工作。检查Firebug和Safari的开发者控制台中的请求,发现响应标题Connection始终设置为“保持活动”

我使用Mongrel和Nginx运行Rails 2.3.5。顺便说一句,设置Content-Type等标题确实有效。

有关如何解决此问题的任何想法?

所以我从来没有想过如何在Rails中做到这一点,但我确实发现nginx 0.7.66+版本会禁用Safari的Keepalive连接。请参阅nginx changelog

所以我升级了我的nginx,现在Safari全部都很好。