Когда контроллер покоя возвращает нулевое тело, ajax переходит к методу ошибки - PullRequest
0 голосов
/ 18 января 2019

env: весенняя загрузка 2.0, сериализация Джексона

мой метод контроллера остатка не вернет никакого тела, как ResponseEntity.ok().build(), но ajax не идет к методу успеха, он переходит к ошибке emthod, и ошибка показывает «Неожиданный конец ввода JSON»

я пробовал это:
1. добавить свойства в application.properties: spring.jackson.default-property-inclusion: NON_NULL, все равно перейти к методу ошибки;
2. обновить возвращаемый результат, как этот ResponseEntity.ok("{}"), все будет в порядке;

@PostMapping(value = "/import")
   public ResponseEntity<Void> importRecipients(@ModelAttribute UserRecipientDto userRecipientDto,
                                                @CurrentUser @ApiIgnore User user,
                                                @RequestParam ImportType importType,
                                                @RequestParam String name,
                                                @RequestParam List<Long> ids) {
       Collection<MailRecipient> count = this.service.getRecipients(userRecipientDto, importType, ids);
       UserMailRecipientGroup userMailRecipientGroup = new UserMailRecipientGroup(name, USER_RECIPIENT, count, user);
       userMailRecipientGroupService.saveMailRecipientGroup(userMailRecipientGroup);
       return ResponseEntity.ok().build();
   }

application.yml:

spring:
  jackson:
      serialization:
        write-dates-as-timestamps: true
        write_dates_with_zone_id: true
      time-zone: GMT
      default-property-inclusion: NON_NULL

блок кода ajax:

    url: url,
    type: type,
    contentType: "application/json;charset=utf-8",
    headers: {},
    data: param,
    async: true,
    dataType: "json",
    success: function success(data) {
      cb(data);
    }, 
error: function error(request, status_code, text_error) {}

iожидайте этого:
когда мой метод rest возвратит ok().build(), ajax перейдет к методу успеха.
Я предполагаю, что в результате преобразования ajax в json произойдет какая-то ошибка, возможно, некоторые весенние загрузочные свойства это сделают, но у меня нетпока не найдено.
спасибо !!

Ответы [ 2 ]

0 голосов
/ 18 января 2019

С верните ok (). Build () вы только что вернули Http Status 200 OK Status. Не так ли?

Что именно вы должны вернуть клиенту?

Если вам нужен какой-то ответ return ResponseEntity.ok (). Build () или

return Response.ok (). Entity (someEntity) .build ();

и я вижу тип возвращаемого значения - ResponseEntity из кода.

Пожалуйста, сформулируйте проблему.

Edit:

Код будет выглядеть как

@ PostMapping (value = "/ import")

public ResponseEntity<String> importRecipients(@ModelAttribute UserRecipientDto userRecipientDto,

        @CurrentUser @ApiIgnore User user, @RequestParam ImportType 

        importType, @RequestParam String name,

        @RequestParam List ids) {


    Collection count = this.service.getRecipients(userRecipientDto, importType, ids);


    UserMailRecipientGroup userMailRecipientGroup = new UserMailRecipientGroup(name, USER_RECIPIENT, count, user);


    userMailRecipientGroupService.saveMailRecipientGroup(userMailRecipientGroup);


    return new ResponseEntity(HttpStatus.OK);


}
0 голосов
/ 18 января 2019

Непонятно, какой класс расширяет ваш контроллер и импорт вашего метода ok ().

Возможно попробуйте с ResponseEntity

ResponseEntity.ok().build()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...