繁体   English   中英

在使用Rails 4和content-type application / json读取之前,request.body是否需要倒带?还是有新的方法?

[英]Does request.body require rewind before read with Rails 4 and content-type application/json or is there a new approach?

当我使用Content-Type:“application / x-www-form-urlencoded”将数据发布到Rails 4应用程序时,我可以通过request.body.read获取请求的主体

但是,当我使用Content-Type“application / json”发布数据时,request.body.read是空白的,除非我先调用request.body.rewind。

两个问题:

1.)如何在不首先在流上调用倒带的情况下获取原始请求主体?

2.)当客户端发送内容类型的应用程序/ json时,是否可以停止Rails(或Rack)解析请求体中的JSON

请注意,在Rails 3中,与Rails 4一样,解析的JSON在params中可用,但request.body.read不需要先重绕。

确实是一个错误 该修复程序已集成到master中,可能应该在4.0.1中弹出。

使用request.env而不是request.body.read。

看起来它可能是ActionDispatch :: ParamsParser中的一个错误。 将以下内容放在config / application.rb中似乎解决了这个问题

config.middleware.delete ActionDispatch::ParamsParser

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM