Mam metodę ajax, która odpowiada za wysłanie nowego email, a w razie błędu chcę, aby zwrócił error code w json.
Metoda w ajax:
function changeEmail() {
var changeEmailDTO = { "email":$('#email').val()};
$.ajax({
type: 'PUT',
url: '/changeEmail',
contentType: "application/json",
dataType: "json",
data: JSON.stringify(changeEmailDTO),
success: function (result) {
console.log(result);
}
});
}
wysyła dane do kontrolera
@PutMapping(value = "/changeEmail", consumes = MediaType.APPLICATION_JSON_VALUE)
public HttpEntity<ChangeEmailDTO> showChangeEMail(
@RequestBody @Valid ChangeEmailDTO changeEmailDTO
) {
System.out.println("Email: " + changeEmailDTO.getEmail());
return ResponseEntity.ok(changeEmailDTO);
}
który w razie, gdy użytkownik poda błędne dane wyrzuciło wyjątek, który obsłuży to specjalna metoda
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public ValidationErrorDTO processValidationError(MethodArgumentNotValidException ex) {
BindingResult result = ex.getBindingResult();
List<FieldError> fieldErrors = result.getFieldErrors();
return processFieldErrors(fieldErrors);
}
Dzięki temu w razie wystąpienia błędu jest zwracana lista błędów, które wystąpiły w postaci json https://zapodaj.net/7e359361ed05a.png.html I dalej nie wiem co robić. W jaki sposób mogę odebrać te dane z response w js/ajax i co dalej zrobić, abym mógł odpowiednio te komunikaty błędów wyświetlić na stronie.