ruby-on-rails - Rails 状态 406 POST 响应

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

在过去的 4 个小时里,我一直在努力解决这个问题。每当我发送不带参数 (body="{}") 的 POST 请求时,我都会收到带有 406 HTTP 状态错误代码的响应。

我的 Controller 看起来很简单

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,因此您需要将以下 header 添加到您的请求中:

接受:应用程序/json

这将告诉 Rails 您想要返回 JSON。

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

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

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

关于ruby-on-rails - Rails 状态 406 POST 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14818321/

相关文章:

ruby-on-rails - 在 create.js.erb 中重定向

ruby-on-rails - 谷歌地图和 Rails 3

ruby-on-rails - Capybara webkit 驱动程序发现重叠元素,如何单击其中之一?

ruby-on-rails - 保存事件记录,关联对象以什么顺序保存?

ruby-on-rails - Ruby on Rails : how to check pluralized and single form of names

javascript - 无法使用 Rails 3.0 的 best-in-place gem 编辑记录

ruby-on-rails-3 - Rails 3 RESTful 身份验证 - 未初始化常量 ApplicationController::AuthenticatedSystem

ruby-on-rails - 在 simpleform 表单中手动设置表单输入字段的 ID?

ruby-on-rails - Carrierwave动态扩展_white_list

ruby-on-rails - 使用 STI 的 Rails 应用程序——获取这些记录的最简单方法?