在过去的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和状态。
如果我还包括来自服务器的失败请求的调试日志,这可能会更直观:
由于您无法请求resetFixture.json,因此您需要在请求中添加以下标头:
Accept: application/json
这将告诉rails您想要返回JSON。
您可以通过添加以下参数来用curl测试这一点:-H "Accept: application/json"
或者,如果您希望Rails始终默认为JSON,您可以将路由更改为:
match 'TESTAPI/resetFixture' => 'users#resetFixture', :via => :post, :defaults => { :format => 'json' }