在rails中不需要Content-Type"application/json"

Leo*_*eon 6 ruby ruby-on-rails ruby-on-rails-4

我在rails中有一个API端点,默认情况下,如果你没有设置任何Content-Type标头来处理params

application/x-www-form-urlencoded
Run Code Online (Sandbox Code Playgroud)

有没有办法从POST请求处理rails中的json字符串而不指定标题中的内容类型?

Ken*_*pek 0

在您的routes.rb文件中,您可以将 POST 路由放置在命名空间内,并定义所需的格式,如下所示:

namespace :api, defaults: { format: :json } do
  post 'example' => 'controller#action'
end
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以将 json 有效负载 POST 到“/api/example.json”,并且不必定义 Content-Type。您也可以只为单个帖子行定义它,但我还没有测试过。

  • 我相信 :format 'json' 定义输出格式,而不是输入格式 (8认同)