错误:仅允许获取请求

时间:2010-01-18 06:35:19

标签: ruby-on-rails

我得到了这个例外

ActionController :: MethodNotAllowed:只允许获取请求。

请任何人为此提供解决方案

3 个答案:

答案 0 :(得分:2)

此错误表示您尝试发布/放置/删除仅接受GET请求的路径。您需要确认您的路线以及您使用的路径和/或表格方法是否匹配。

答案 1 :(得分:2)

当您定义了标准路由并且客户端尝试使用不同于GET或POST的HTTP方法连接到路由时,会发生此错误。

通常,这是由使用Microsoft Office Protocol Discovery的客户端引起的。这些客户端send an OPTION request不受Rails支持。

您可以通过多种方式解决问题:

  1. 忽略生产环境中的错误
  2. 使用控制器中的before_filter和head 406来防止错误
  3. 使用控制器中的rescue_from救援错误
  4. 防止通过Rack Middleware
  5. 过滤请求的错误
  6. 使用您的网络服务器阻止阻止非GET / POST / HEAD请求的错误
  7. 我个人更喜欢最后一个选项,但它要求您在服务器上拥有管理权限。否则,Rack Middleware选项是过滤意外请求的最有效方法。

答案 2 :(得分:0)

您是如何尝试访问此页面的?看起来你正在尝试做一些其他类型的RESTful调用(put,post,delete)和那种方法。剪下该控制器的代码对诊断问题非常有帮助。