Rails状态406 POST响应

时间:2013-02-11 18:18:10

标签: ruby-on-rails ruby-on-rails-3

过去4个小时我一直在努力解决这个问题。每当我发送一个没有参数的POST请求(body =“{}”)时,我会得到一个带有406 HTTP状态错误代码的回复。

我的控制器看起来像

一样简单
def resetFixture

    respond_to do |format|
      format.json { render :json=>final_obj, :status=>:ok}
    end
  end

路线:

match 'TESTAPI/resetFixture' => 'users#resetFixture', :via => :post

我正在尝试使用“{errCode:1}”

返回JSON响应

如果我使用-d“”执行curl请求,我会得到我想要的响应,但是如何修复此错误代码?我似乎已经指定了JSON和状态。

如果我还从服务器中包含失败请求的调试日志,则可能更直观:

1 个答案:

答案 0 :(得分:2)

由于您无法请求resetFixture.json,因此您需要在请求中添加以下标头:

Accept: application/json

这将告诉rails你想要JSON回来。

您可以通过添加以下参数来使用curl对此进行测试:-H "Accept: application/json"

或者,如果您希望Rails始终默认为JSON,您可以将路线更改为:

match 'TESTAPI/resetFixture' => 'users#resetFixture', :via => :post, :defaults => { :format => 'json' }