【问题标题】:Malformed HTTP requests on rails?Rails 上的 HTTP 请求格式错误?
【发布时间】: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


【解决方案1】:

您可以模拟 DELETE 请求,将 _method 参数定义为“删除”并发布您的请求

【讨论】:

  • 嗨,我目前正在这样做,链接看起来像:
  • 这通常有效,但在某些情况下——我不知道为什么——请求是通过 POST 方法发出的,这会启动异常。
猜你喜欢
  • 2017-08-02
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 2017-12-16
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多