在列表中执行大量删除链接的最佳方法是什么?

时间:2015-08-14 18:01:41

标签: html rest

删除请求应该是POST(或DELETE)。但我们无法使用<a>标记创建POST / DELETE。

是否真的有必要在一个巨大的<form>中包含一个删除按钮,并在页面上为~30个不同的项目提供隐藏的CSRF令牌,或者有更好的方法来解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

您可以使用POST发送XmlHttpRequest请求,在纯JavaScript中执行此操作,如下所述:Send POST data using XMLHttpRequest

答案 1 :(得分:1)

没有JS的解决方案:

使用PHP创建一个能够处理删除并重定向的着陆页 - 这样,您就不必担心用户界面,甚至可以从标准锚标签中获取GET请求。用户流看起来比在成功时进行AJAX +刷新更自然。

您甚至可以使用现有页面(让我们称之为page.php),例如:

  • 点击一个可以转到page.php?action=delete&token=123&ids=1-2-3-4-5
  • 的锚点
  • 页面将识别操作参数,验证令牌并删除带有提交ID的项目
  • 完成后,它会将您重定向回page.php(因此,网址再次显示不错,用户点击刷新按钮即可安全使用)

答案 2 :(得分:0)

根据我从评论中收集到的内容,基本上有3种方法:

  1. 在问题
  2. 中最初说明的<form>中换行每个删除按钮
  3. 发出一个AJAX DELETE请求,当它完成时,也是
    1. 使用jQuery(或其他前端框架)刷新UI元素
    2. 重新加载整个页面
  4. 使删除按钮链接到具有单个<form>元素的中间页面。这也可以作为确认页面。
    1. 让表单自动使用JS
    2. 提交
  5. 全页面重新加载(2.2)的AJAX解决方案听起来似乎对我产生的影响最小。