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」ヘッダーをURLの末尾に「.json」を追加する代わりに「application / json」に設定することで問題を回避しました(そして私の限られたインターネット調査では、これはとにかく好ましいアプローチです)。

于 2012-07-04T18:15:46.867 に答える