2010-01-18 182 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請求使用您的網絡服務器

我個人更喜歡最後一個選項,但它需要您在服務器上擁有管理權限。否則,機架中間件選件是過濾意外請求的最有效方式。

相關問題