【发布时间】:2010-08-23 22:28:39
【问题描述】:
我从我的 rails 应用程序中收到此偶发错误:
ActionController::MethodNotAllowed:只允许获取、放置和删除请求。
我认为这是由客户端浏览器引起的格式错误的 HTTP 请求(在本例中为 DELETE 请求)引起的......也许?
触发这个动作的网址是这样的:
https://domain.com/resource/id/resource/id/resource/id.js?item_id=xxx
这是由一个帮助器生成的,例如:
link_to_remote('delete', :url => resource_path(:id => @resource, :item_id => xxx, :format => :js), :method => :delete)
在某些远程情况下,这会崩溃,我怀疑这只发生在 IE(甚至 IE8)中...
如果是这样,有什么解决方案?它认为这应该适用于所有浏览器......
你们有什么建议,伙计们?
感谢您的帮助。
【问题讨论】:
-
我的猜测是某些东西正在向您的 URL 发送 POST,而没有告诉 Rails 应该将其视为 DELETE 的隐藏参数。由于该路线不接受 POST Rails 引发该错误。你可以放宽对路由的限制,让它接受 POST,但这不是很 RESTful。
-
嗨,克里斯,实际上在某些情况下它是通过 POST 发送的,显然客户端浏览器完全忽略了 AJAX 请求,但我不知道为什么,这是我的疑问
标签: ruby-on-rails http rest xmlhttprequest