Я пытаюсь выяснить, как сделать запрос DELETE, используя только Javascript. У меня есть служба, написанная на Java Spring, где контроллер для URL-адреса, над которым я работаю, имеет method = RequestMethod.DELETE
. Мой url, скажем, http://192.168.50.51/my-service/deleteLocation/{value1}/{value2}/{value3}
. В моей JavaScript, у меня есть функция AJAX выглядеть примерно так:Как сделать DELETE-запрос HTTP с Javascript (не jQuery)
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?
Ваш сервис отклоняет его. Почему он отвергает это? –
'406 Not Acceptable' исходит от сервера, а не от вашего клиента. Вы правильно используете XHR, но убедитесь, что вы выполняете DELETE правильно в соответствии с документами webservice. – Dai