http - 从浏览器执行 HTTP PUT

标签 http rest

我想知道关于如何从浏览器执行 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/

相关文章:

php - 使用 AWS 进行 SQL 和 REST 前端

rest - golang 的 Shim 接口(interface)中的补丁函数

android - 如何突破 API 的使用限制?

c# - 如何检查 cookie 容器中是否有任何 cookie 过期?

java - 将 java 示例从 GET 转换为 POST

javascript - 如何弄清楚网站中的请求是如何发起的?

email - 推荐使用 REST API 的电子邮件服务器?

http - Qt 使用 QNetworkAccessManager 登录 steam

java - 在 J2ME 中通过 http 发送和接收数据以及处理菜单和屏幕

rest - 使用 Postman 测试 REST 持久性端点