2012-02-09 112 views
0

我正在使用Rails进行WebApp(使用mongrel进行开发,并使用nginx进行生产)。 我发送JSOn数据:Rails 3 + JSON +内容长度未发送

respond_to do |format| 
    format.json { render :json => { :success => "OK", :items => items } } 
end 

它的工作原理。但我需要拥有Content-Length,并且不会发送。获取JSON时如何强制Content-Length在标题中发送?是 - 它是一个Rails配置问题,或服务器配置问题?

有没有办法在Rails中设置它?像:

响应[ '的Content-Length'] = XXX

这是个好主意吗?在我的情况下,我发送大量的JSON数据(300 Kb)。

回答

2

哪个Rails版本(完全)?

尝试http://dev.mensfeld.pl/2011/09/rails-3-1-sending-content-length-header-using-middleware-rack-content-length/ 这增加了一个中间件,设置C.L.自动。

当然您也可以手动设定,但是因为有这么方便的中间件... :)

另见http://weblog.rubyonrails.org/2011/4/18/why-http-streaming - 显然这不是自动完成的,所有的时间,因为流媒体的反应是没有用的。

+0

Rails版本是3.0.5。我尝试了你在config.middleware.use Rack :: ContentLength之前所说的话,但是这没有做任何事...... – 2012-02-09 11:12:52

+0

这是实际的HTTP响应'{0} {0} {0} “; Connection =关闭; “Content-Type”=“application/json; charset = utf-8”; 日期=“星期四,2012年2月9日11:17:27 GMT”; Etag =“\”fce7ad73ac9a5f1be5fd9e508ff80932 \“”; “Transfer-Encoding”=身份; “X-Authenticity-Token”=“oD6rOpEN3Wrw4soWuyJiav8h6o + rWFPoIMW4tIStNHA =”; “X-Runtime”=“1.537700”; “X-UA兼容”=“IE =边缘”; }' – 2012-02-09 11:19:32

+0

嗡嗡声......我在我的本地配置中也遇到了apache和mongrel的问题...... – 2012-02-09 12:58:05