2012-07-04 43 views
1

所以我有一个控制器,看起来大致是这样的(简化为简洁起见)一Padrino应用:为什么我在POST请求中获得405的JSON?

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 

如果我打我的浏览器“的问题/ 1”,我看到的HTML页面给出的问题。如果我点击“questions/1.json”,我会看到问题的JSON表示。完全如我所料。

现在,如果我通过Web表单提交POST请求到“questions/1”,它就可以工作。但是如果我尝试发送一个POST请求到“questions/1.json”(表明我希望JSON格式的响应,或者至少我认为能够工作),我得到了405方法不允许。

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

回答

1

嗯,我不确定为什么会发生这种情况;但现在我已经解决了这个问题,在我的POST请求中将“ACCEPT”标头设置为“application/json”,而不是将“.json”粘贴到URL的末尾(并且在我有限的互联网研究中,这可能无论如何都是首选方法)。

相关问题