如何在链接或表单中指定DELETE方法?

Mau*_*nes 32 html5 hyperlink http-verbs rfc2616 http-delete

Rfc2616列出了除GET和POST之外的许多方法,比如DELETE,PUT等.但是,html格式的方法字段似乎只允许指定GET或POST.

是否可以在使用非GET或POST的请求方法的html页面中创建链接或表单?

Pau*_*ite 17

您当然无法创建使用其他任何内容的链接GET.自HTML开始以来,链接一直是幂等的,没有副作用.

对于表单和XMLHTTPRequests,Caps'链接是要查看的地方:PUT,DELETE,HEAD等方法在大多数Web浏览器中是否可用?.


Alm*_*Why 15

试图在前端使用Angular的rails应用程序中解决这个问题; 这些似乎适用于该环境:

<a data-confirm="Are you sure?" data-method="delete" href="/link-to-resource" rel="nofollow">Delete</a>
Run Code Online (Sandbox Code Playgroud)

编辑:只是为了让每个人都站起来,我认为你仍然需要使用jQuery来实现这一目标.我删除了jQuery,它停止了工作; 我把它放回去了,它开始工作了.

  • 此行为来自jquery_ujs,它是jquery-rails的一部分.不引人注目的Java脚本.这也是数据:{确认:'你呢?'}行为. (5认同)

Ada*_*son 13

默认情况下,没有办法做到这一点.链接总是执行GET,表单可以使用GET或POST.

也就是说,使用一点JavaScript,它是可能的.例如,Rails附带了帮助程序,它将data-method向链接添加属性.Rails-UJS是一个jQuery库,它将透明地拦截这些链接上的点击,并_method使用用于覆盖普通HTTP方法的参数触发表单提交.最后,Rack将使用_method参数拦截请求,并使用值覆盖请求方法_method.

毫无疑问,其他框架也遵循类似的模式.

如果你想要更多的细节,我已经写了一个关于Rails,Rails-UJS和Rack如何协同工作的解释.

了解您的图书馆如何运作是件好事.