环顾四周,我不能一个单一的网络应用程序(未网服务)使用任何东西除了获取和员额的请求。是否有具体的原因?做一些浏览器(或服务)不支持任何其他类型的请求?还是这仅仅由于历史的原因?我想使用的投入和删除的请求使我的生活轻松一点在服务器上边,但是我不愿意因为没有人这样做。

有帮助吗?

解决方案

实际上相当数量的人使用的投入和删除主要是非浏览器Api。一些实例的原子发布议定书》的数据Api:

除此之外,你没有看到把/删除的常见使用,因为大多数浏览器不支持把以及删除,通过的形式。HTML5似乎是固定:

它的工作方式对于浏览器的应用是:人们设计的宁静的应用与投入和删除记住,然后"隧道"的这些请求可通过员额从浏览器。例如,看看这个如此问题上的红宝石怎么在轨道上实现这一使用隐藏的领域:

所以,你不会在自己的设计应用程序的较大的集HTTP动词记在心。

编辑:顺便说一句,如果你好奇为什么把/删除缺少基于浏览器的形式员额,它原来没有真正的良好的技术原因。阅读周围的这个线程上的其他讨论的邮件列表,特别是罗伊派出的评论意见,是有趣的一些方面:

编辑:有一些评论是否阿贾克斯库支助的所有方法。它不会来的实际浏览器上实施的程序.我以为有人可能会找到这个的链接方便,其测试你的浏览器查看如何符合http请求的目的是与各种HTTP的选择。

不幸的是,我不知道为参考收集这些结果。

其他提示

很简单, HTML 4.01 form元件只允许值“POST”,并在其GET属性“method

强硬的安全政策有些代理服务器可能会删除它们。我使用PUT和DELETE反正

我读过,有些浏览器不支持其他的HTTP方法得当,虽然我不能说出任何细节。

Rails的,特别是会收拾你的形式与方法的参数明确设置这个即使浏览器不支持这些方法。这似乎是,如果你要做到这一点合理的预防措施。

我说使用HTTP的所有功能,浏览器是该死,洛尔。也许它会激发更多的完整和正确使用HTTP协议的前进。有一个关于净多发生比只有帖子和GET。关于时间浏览器实现反映了这一点。

这取决于你的浏览器和Ajax库。例如 jQuery的支持所有HTTP方法,即使浏览器可能不。例如参见 jQuery的 “AJAX” 文档在 “type” 属性。

的Restlet 的Java框架,可以让你的隧道PUT和DELETE通过HTML POST操作的请求。要做到这一点,你只需要添加方法=放或方法=删除您的URI的查询字符串,例如:

http://www.example.com/user=xyz?method=delete ...

这是相同的Ruby on Rails的方法(如通过@ars如上所述)。

就个人而言,我实在看不出使用PUT或删除Web应用程序的任何目的。所有的操作,应用程序进行读取或写入,又名输入输出。为什么你需要区分操作的性质在HTTP请求头? 我可以做的Ajax调用与表单/对象/ OBJECT_ID的相同的URL 和做多的操作,如删除,更新,获得的价值,或创造。 只要看一眼的URL,我不知道它是哪一个。 通过使用GET和POST,我的网址是:

/对象/ ID /删除

/对象/ ID /创建

/对象/ ID /更新

/对象/ ID - >暗示GET

根据我有限的经验,这是在许多情况下比隐藏首标请求类型清洁器很多。 我不是说一个人永远不能使用PUT或DELETE,只是说,使用它们只有在绝对必要的。

请参阅“基于REST的Web API”伦纳德·理查森阅读更多关于不同的使用情况和公约关于在REST风格的Web API的HTTP请求方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top