我想知道什么是明确的(?)答案是关于如何从浏览器中执行POST/GET以外的事情 - HTML表单或Ajax,因为我听到关于什么浏览器允许的混合报告(特别是在ajax端) ).
在RESTful风格中构建后端时,最好使用PUT,HEAD,OPTIONS等适当的动词......在rails中,使用一个名为method(IIRC?)的隐藏表单字段来模拟这个,并在后端使用调度到动词的适当控制器.现在(2009年底)这是必要的吗?有哪些惯例?
似乎大多数浏览器除了GET和POST之外不支持其他方法,因为它是HTML表单的限制.这是关于该主题的另一个问题:
大多数Web浏览器中是否提供PUT,DELETE,HEAD等方法?
为了模拟PUT,DELETE等方法,您可以使用伪方法向常规GET/POST表单添加隐藏输入,并让您的应用程序对其进行翻译,以便您的控制器将其视为真正的PUT请求,如你所说.我已经在google sitebricks中看到过这种方法(在java中 - 抱歉我没有任何特定于rails的引用,但这可能至少可以让你有个想法).我认为这可能是我们一直坚持的方法,直到HTML规范中的某些内容发生变化(以及带有它的浏览器)
但是,主流浏览器在AJAX中支持GET,POST,PUT和DELETE,因此如果您不依赖于HTML表单,则不需要隐藏输入.
您必须使用AJAX来执行除GET和POST之外的任何操作,我建议您使用jQuery Forms插件来提交表单作为PUT.