HTML 表单的模式无法为 REST 生成 DELETE

发布于 2024-12-13 21:38:18 字数 151 浏览 0 评论 0原文

嗨,我知道这有点疯狂,但现在我的项目有点疯狂。我们有一个 RESTful 应用程序,它可以提供很多服务,我们都知道 DELETE 是一个动词,用于删除东西。然而,我们也知道 HTML 表单不能产生 DELETE,我说得对吗?我们如何解决这个问题?和建议将不胜感激。

谢谢,

Hi I know this is a bit wired, but right now my project has gone a bit mad. We have a RESTful application which can provide a bunch of services, we all know that DELETE is a verb to use to delete stuff. However, as we also know that HTML form cannot produce DELETE am I right? How do we solve this issue? And suggestion would be greatly appreciated.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命比纸薄 2024-12-20 21:38:18

为此,您需要使用 javascript。这是一个示例:

    <script type="text/javascript">
    function getXMLHttpRequest() {
        try { return new XMLHttpRequest(); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
        try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
        throw new Error("This browser does not support XMLHttpRequest.");
    }

    function sendDelete(url, confirmation, successUrl) {
        if (confirm(confirmation)) {
            var r = getXMLHttpRequest();
            r.open("DELETE", url, false);
            r.send();
            if (r.status < 200 || r.status > 299) {
                alert(r.responseText);
            } else {
                if (successUrl == null) {
                    location.reload(true);
                } else {
                    location.href = successUrl;
                }
            }
        }
    }
    </script>

然后您可以从网页按钮的 onclick="" 调用 sendDelete() 方法。

You need to use javascript for that. Here is an example:

    <script type="text/javascript">
    function getXMLHttpRequest() {
        try { return new XMLHttpRequest(); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {}
        try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {}
        try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {}
        throw new Error("This browser does not support XMLHttpRequest.");
    }

    function sendDelete(url, confirmation, successUrl) {
        if (confirm(confirmation)) {
            var r = getXMLHttpRequest();
            r.open("DELETE", url, false);
            r.send();
            if (r.status < 200 || r.status > 299) {
                alert(r.responseText);
            } else {
                if (successUrl == null) {
                    location.reload(true);
                } else {
                    location.href = successUrl;
                }
            }
        }
    }
    </script>

Then you can just call the sendDelete() method from the onclick="" of your web page button.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文