У меня есть угловое / пружинное загрузочное веб-приложение. Когда я отправляю запрос на создание пользователя, приложение на стороне клиента не может прочитать тело объекта ответа, который я отправляю после операции. Ошибка:
{error: SyntaxError: Unexpected token U in JSON at position 0 at JSON.parse (<anonymous>) at XMLHttp…, text: "User successfully created."}
Я знаю, что это вызвано тем, что содержимое тела не в формате JSON. Но ошибка сохраняется, даже когда я добавляю produces = "application/json"
в качестве атрибута к аннотации @PostMapping
.
Вот код:
@RestController
@RequestMapping("api/user")
public class UserController {
private final Log logger = LogFactory.getLog(this.getClass());
@Autowired
UserService userService;
@Autowired
UserDao userDao;
@PostMapping(path = "/create", produces = "application/json")
private ResponseEntity<String> createNewUser(@RequestBody UserCreateDTO newUser) {
logger.info("name is: " + newUser.getUserName());
Status status = userService.createUser(newUser);
return ResponseEntity.status(status.isSuccess() ?
HttpStatus.CREATED : HttpStatus.BAD_REQUEST).body(status.getInfo());
}
Что я должен сделать, чтобы решить эту проблему? Я думаю, что это как-то связано с использованием ResponseEntity. Я мог бы просто отправить объект статуса DTO, который я создал, вместо этого, но я хочу иметь возможность манипулировать кодом httpStatus, который также отправляется обратно, поэтому я хочу использовать вместо него ResponseEntity.