javascript - 如何使用 Javascript(不是 jQuery)发出 DELETE http 请求

标签 javascript ajax httprequest http-delete

我正在尝试弄清楚如何仅使用 Javascript 发出 DELETE 请求。我有一个用 Java Spring 编写的服务,其中我正在处理的 url 的 Controller 具有 method = RequestMethod.DELETE。例如,我的网址是 http://192.168.50.51/my-service/deleteLocation/{value1}/{value2}/{value3}。在我的 JavaScript 中,我有一个 AJAX 函数,如下所示:

    ajaxFunction : function(url, callback, httpMethod) {

    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
            var jsonParse = JSON.parse(xhttp.responseText);
            callback(jsonParse);
        }
    }
    xhttp.open(httpMethod, url, true);
    xhttp.send();

}

当我想使用 DELETE url 时,我有一个附加到运行此方法的按钮的事件处理程序:

    deleteConfirm : function() {
    var valuel         = this.value1;
    var value2         = document.getElementById('element-id').getAttribute('data-element');
    var value3         = document.getElementById('element-id').getAttribute('data-element2');
    var url            = 'http://192.168.50.51/my-service/deleteInfo/' + value1 + '/' + value2 + '/' + value3;
    var httpMethod     = 'DELETE';
    var deleteCallback = function() { alert('deleted!'); }
    this.ajaxFunction(url, deleteCallback, httpMethod);
}

但是,我的控制台中不断出现错误: my-javascript.js:59 DELETE http://192.168.50.51/my-service/deleteInfo/123456789/123-456-7AB/12699 406 ( Not Acceptable )

我了解到 XMLHttpRequest 仅接受 GETPOST。如何仅使用 JavaScript 发出删除请求?

最佳答案

根据信息,您的浏览器似乎实际上正在创建 DELETE请求,因为服务器给你返回了 406 (Not Acceptable)回复。如果您的客户一开始就没有发送请求,那么它就不会这样做。这意味着服务器收到了您的DELETE请求并决定不处理它。因此,您需要查看服务器的 API,了解什么为您提供了 HTTP406,以及您的请求需要进行哪些不同才能使其正常工作。

调试此类事情的一个好方法是通过浏览器开发人员工具。大多数浏览器都有一个选项卡,显示浏览器发出的 HTTP 请求和响应。今后,这将使您更轻松地验证这些内容。

关于javascript - 如何使用 Javascript(不是 jQuery)发出 DELETE http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457083/

相关文章:

javascript - AngularJS 中的条件 ng-model 绑定(bind)

javascript - 有没有办法对 public_html 之上的文件进行 AJAX 调用?

javascript - 通过ajax api调用从多个对象获取数据

php - 请求的来源

java - 将很长的 URL 传递给 HTTPServletRequest

objective-c - 使用 curl 查看 POST 请求的主体

javascript - 使用javascript中的特定数字生成随机数

javascript - elementFromPoint 选择底部元素

Javascript - 复制到剪贴板,但 HTML 标记中没有具体 ID

javascript - 在 div 中使用 Jquery 显示 AJax 响应