如何使用 Javascript(而不是 jQuery)发出 DELETE http 请求
How to make a DELETE http request with Javascript (not jQuery)
我正在尝试弄清楚如何仅使用 Java 脚本发出删除请求。我有一个用 Java Spring 编写的服务,其中我正在处理的 url 的控制器有 method = RequestMethod.DELETE
。我的 url 是 http://192.168.50.51/my-service/deleteLocation/{value1}/{value2}/{value3}
。在我的 Java 脚本中,我有一个 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 只接受 GET
和 POST
。如何仅使用 JavaScript 发出删除请求?
根据这些信息,您的浏览器 似乎是 实际上发出了 DELETE
请求,因为服务器给了您一个 406 (Not Acceptable)
响应。如果您的客户从一开始就没有发送请求,它就不会这样做。这意味着服务器收到了您的 DELETE
请求并决定不处理它。因此,您需要查看服务器的 API 以查看是什么为您提供了 HTTP406 以及您的请求需要有哪些不同才能使其正常工作。
调试此类内容的一个好方法是使用浏览器开发人员工具。大多数浏览器都有一个选项卡,向您显示浏览器发出的 HTTP 请求和响应。这将使您更容易验证这些事情,继续前进。
我正在尝试弄清楚如何仅使用 Java 脚本发出删除请求。我有一个用 Java Spring 编写的服务,其中我正在处理的 url 的控制器有 method = RequestMethod.DELETE
。我的 url 是 http://192.168.50.51/my-service/deleteLocation/{value1}/{value2}/{value3}
。在我的 Java 脚本中,我有一个 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 只接受 GET
和 POST
。如何仅使用 JavaScript 发出删除请求?
根据这些信息,您的浏览器 似乎是 实际上发出了 DELETE
请求,因为服务器给了您一个 406 (Not Acceptable)
响应。如果您的客户从一开始就没有发送请求,它就不会这样做。这意味着服务器收到了您的 DELETE
请求并决定不处理它。因此,您需要查看服务器的 API 以查看是什么为您提供了 HTTP406 以及您的请求需要有哪些不同才能使其正常工作。
调试此类内容的一个好方法是使用浏览器开发人员工具。大多数浏览器都有一个选项卡,向您显示浏览器发出的 HTTP 请求和响应。这将使您更容易验证这些事情,继续前进。