3

在过去的 4 个小时里,我一直在努力解决这个问题。每当我发送不带参数 (body="{}") 的 POST 请求时,我都会收到带有 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 和状态。

如果我还包括来自服务器的失败请求的调试日志,它可能会更直观:

4

1 回答 1

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' }

于 2013-02-11T19:20:55.090 回答