簡體   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