[英]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.