У меня есть форма html с некоторыми полями, которые мне нужно проверить (имя, адрес, адрес электронной почты и т. Д. c). И это работает, но я не могу передать информацию об ошибке проверки из метода @PostMapping
в AngularJS. Ответ пуст. Что я делаю не так?
Store. java - класс контроллера
@Controller
public class Store {
@PostMapping("/save")
public ResponseEntity<Object> getShippingInfo(@Valid @RequestBody final User user,
final BindingResult bindingResult) {
Store.LOGGER.info("{}", user);
if (bindingResult.hasErrors()) {
Store.LOGGER.info("{}", "Validation failed");
final List<String> errors = bindingResult.getAllErrors().stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return new ResponseEntity<>(errors, HttpStatus.OK);
} else {
Store.LOGGER.info("{}", "Validation successed");
}
return new ResponseEntity<>(HttpStatus.CREATED);
}
}
Main. js - файл с AngularJS
var app = angular.module('myShoppingList', ['ngRoute', 'ngStorage']);
//some code
app.controller('myCtrl', function ($scope, $http, $location, items) {
$scope.listCustomers;
$scope.postFunc = function () {
if ($scope.formCust) {
$scope.listCustomers = this.formCust;
$scope.formCust = {};
}
var urlInfo = '/save';
var config = {
headers: {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}
};
var dataArr = $scope.listCustomers;
$http.post(urlInfo, dataArr, config).then(function (response) {
$scope.postDivAvailable = true;
$scope.postCust = response.data;
}, function error(response) {
$scope.postResultMessage = 'Error Status: ' + response.statusText;
console.log('', $scope.postResultMessage);
});
$scope.listCustomers = [];
$scope.result = 'Success!';
};
});
Итак, здесь мой вывод в консоли браузера из $scope.postResultMessage
просто пуст, а из Store.LOGGER.info("{}", errors);
я попадаю в консоль Eclipse, как и ожидалось:
[size must be between 7 and 10, invalid credit card number]
Обновление 1
Если я пытаюсь вывести только ответ на консоль браузера, я получаю следующее: