所以我有一个带有控制器的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表示。完全像我期望的那样。
现在,如果我通过网络表单向“questions / 1”提交POST请求,它就可以了。但是,如果我尝试向“questions / 1.json”发送POST请求(表示我希望JSON格式的响应 - 或者至少是我思考它的工作方式),我得到了405方法不允许。
我猜这里有一些我基本误解的东西。我错过了什么?更重要的是,应该如何我定义接受POST请求的路由并提供HTML或JSON响应?
答案 0 :(得分:1)
好吧,我不确定为什么会这样;但是现在我通过在我的POST请求中将“ACCEPT”标题设置为“application / json”而不是将“.json”添加到URL的末尾来解决问题(并且在我的有限的互联网研究中,这可能是无论如何都是首选方法。)