2010-01-18 144 views
0

我得到这个异常错误:只允许请求

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

请任何一个给这个解决方案

+0

您能否告诉我们config/routes.rb中的行会影响您正在尝试使用的控制器? – kikito 2010-01-18 14:52:44

回答

0

你是如何试图到这个页面?它看起来像你正在尝试做一些其他类型的RESTful调用(put,post,delete)和该方法。剪掉该控制器的代码对于诊断问题将非常有帮助。

2

此错误表示您试图发布/放入/删除到只接受GET请求的路径。您需要确认您的路线和您使用的路径和/或表单方法是否匹配。

2

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

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

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

  1. 忽略错误在生产环境中
  2. 防止误用的before_filter和head 406在控制器
  3. 救援使用rescue_from错误的控制器
  4. 通过机架中间件防止错误过滤请求
  5. 防止错误阻止非GET/POST/HEAD请求使用您的网络服务器

我个人更喜欢最后一个选项,但它需要您在服务器上拥有管理权限。否则,机架中间件选件是过滤意外请求的最有效方式。