1

所以我有一个 Padrino 应用程序,其控制器看起来大致如下(为简洁起见):

App.controllers :questions do
  get :index, :with => :id, :provides => [:html, :json] do
    # Stuff
  end

  post :index, :with => :id, :provides => [:html, :json] do
    # Other stuff
  end
end

如果我在浏览器中点击“questions/1”,我会看到给定问题的 HTML 页面。如果我点击“questions/1.json”,我会看到问题的 JSON 表示。就像我所期望的那样。

现在,如果我通过 Web 表单向“questions/1”提交 POST 请求,它就可以工作了。但是,如果我尝试向“questions/1.json”发送一个 POST 请求(表明我想要 JSON 格式的响应,或者至少我认为它是这样工作的),我会得到一个 405 Method Not Allowed。

我猜我在这里误解了一些基本的东西。我错过了什么?更重要的是,我应该如何定义一个路由来接受 POST 请求并提供 HTML 或 JSON 响应?

4

1 回答 1

1

好吧,我不太确定为什么会这样。但是现在我已经通过在我的 POST 请求中将“ACCEPT”标头设置为“application/json”而不是在 URL 的末尾添加“.json”来解决这个问题(根据我有限的互联网研究,这可能无论如何都是首选方法)。

于 2012-07-04T18:15:46.867 回答