我想知道关于如何从浏览器执行 POST/GET 以外的事情的最终(?)答案是什么 - 无论是 HTML 表单还是 Ajax,因为我听到关于哪些浏览器允许什么的混合报告(特别是在 Ajax 方面)。
当以 RESTful 风格构建后端时,最好使用适当的动词,如 PUT、HEAD、OPTIONS 等...在 Rails 中,使用了一个名为 method(IIRC?)的隐藏表单字段来模拟这一点,并在后端将动词分派(dispatch)到适当的 Controller 。现在(2009 年底)有必要这样做吗?约定是什么?
最佳答案
似乎大多数浏览器不支持除 GET 和 POST 之外的其他方法,因为它是 HTML 表单的限制。 这是关于该主题的另一个问题:
Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
为了模拟 PUT、DELETE 等方法,您可以使用伪方法将隐藏输入添加到常规 GET/POST 表单,并让您的应用程序转换它,以便您的 Controller 将其视为正如您提到的,真正的 PUT 请求。我在 this code. 中看到这种方法在 google sitebricks 中使用(在 java 中 - 抱歉,我没有任何特定于 rails 的引用,但这至少可以给你一个想法)我认为这可能是我们坚持使用的方法,直到 HTML 规范中的某些内容发生变化(以及浏览器)
但是,主要浏览器在 AJAX 中支持 GET、POST、PUT 和 DELETE,因此如果您不依赖 HTML 表单,则无需隐藏输入。
关于http - 从浏览器执行 HTTP PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856996/