相关疑难解决方法(0)

Sinatra控制器参数方法在JSON post请求时变为空

我有一个Sinatra应用程序,在我的大多数控制器中,json进入并在params对象中自动拾取.但是,除非我使用before方法来拉取request.body参数将它们解析为JSON并将它们合并到params散列中,否则我的后期操作根本没有得到参数.

这是控制器,以及过滤方法:

before do
  if request.request_method == "POST"
    body_parameters = request.body.read
    params.merge!(JSON.parse(body_parameters))
  end
end


post '/locations/new' do
  content_type :json
  puts "params after post params method = #{params.inspect}"
  ... other code ...
end
Run Code Online (Sandbox Code Playgroud)

我看到的输出基本上是控制器动作中的参数实际上在那里正确.但是,如果我在通话前注释掉参数是空的.

之前的感觉就像一个黑客.无论怎样,我都希望这些参数进来......我必须在那里做错事但我不知道它是什么.

任何帮助将深深感激......

json sinatra

26
推荐指数
2
解决办法
2万
查看次数

标签 统计

json ×1

sinatra ×1