Итак, у меня есть контроллер весенней загрузки и функция ajax для получения данных ответа, после того как я получу ответ в моем успехе ajax, но данные не определены, однако статус HTTP равен 204, что хорошо, но почему данныене определено и как получить его в моем AJAX для доступа к свойству в моем объекте, который я хочу получить?
Мой контроллер
@DeleteMapping(value = "/**/delete/{id}")
public ResponseEntity<?> delete(@PathVariable Integer id) {
Optional<Offer> optional = this.offerRepository.findById(id);
if (optional.isPresent()) {
this.offerRepository.deleteById(id);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
Offer offer = optional.get();
return new ResponseEntity<Offer>(offer, responseHeaders, HttpStatus.NO_CONTENT);
} else {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.TEXT_HTML);
String msg = "Offer is not found";
return new ResponseEntity<String>(msg, responseHeaders, HttpStatus.NOT_FOUND);
}
}
Мой AJAX
$.ajax({
url: "/" + currentUserRoleName + '/delete' + "/" + offerIdValue,
scriptCharset: 'UTF-8',
method: 'DELETE',
success: function (data, textStatus, jqXHR) {
console.log(data); // get undefine
console.log(jqXHR.status); //status is 204
var offer = $.parseJSON(data.responseText); //here error call of undefine
if (jqXHR.status === 204 || jqXHR.status === 200) {
// var id = offer.id;
var selector = "input#offerHiddenId[value = '" + offerIdValue + " ']";
var hiddenInputWithOfferId = $(".main_out_wrapper_user_offers").css(selector);
var parent = hiddenInputWithOfferId.closest("div.inner_main_out_wrapper_user_offers");
parent.empty();
$("#no").click();
} else {
alert("Can't delete the offer");
}
},
error: function (data) {
alert(data.responseText);
var div = $.createElement("div");
var span = $.createElement("span");
span.innerHTML = "Offer is not found";
div.appendChild(span);
div.fadeIn(1000, function () {
div.fadeOut(1000);
});
}
});
Librery для spring-boot для преобразования объекта в формат JSON в pom.xml
<properties>
<jaction.xml.version>2.9.6</jaction.xml.version>
</properties>
<!--FOR JSON-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jaction.xml.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jaction.xml.version}</version>
</dependency>
Я попытался удалить предложение из базы данных и отправил запрос со своей страницы, а предложение было удалено из базы данныхОднако с ответом не так хорошо, когда я отправляю новый ResponseEntity (msg, responseHeaders, HttpStatus.NOT_FOUND), я все еще получаю неопределенные данные в моей функции ajax.
Я хочу получить объект предложения в формате JSON в формате ajax для доступа к идентификатору из объекта предложения.