Как обработать сообщение об ошибке и успехе успешно? - PullRequest
0 голосов
/ 27 февраля 2020

Хотите показать ответное тело сообщения в модальном окне. который идет со стороны сервера. поэтому приведенный ниже код работает нормально, когда возникает любая ошибка. Но он не работает должным образом, когда он успешно выполняется (не может увидеть сообщение об успешном завершении). я знаю, что мне нужно изменить errorHandle метод. но, как новичок в angular, я не могу найти лучшее решение для него. Можете ли вы мне помочь.

Регистрация. java

         @RequestMapping(value = "/createRegistration",method = RequestMethod.POST,
        produces = MediaType.APPLICATION_JSON_VALUE)
            public ResponseEntity createNewRegistration(@RequestBody Registration registration) {
              boolean isTrue=assetLiabilityService.createRegistration(registration);
              if(isTrue) {
                  return new ResponseEntity<>("User already Exist", HttpStatus.BAD_REQUEST);
              }
              else {
                  return new ResponseEntity<>("User Created Successfully",HttpStatus.OK);
              }
        }

RegistrationService.ts

        saveRegistration(regObj:any) {
            return this.http.post<any>('url',
              {
                name:regObj.name,
                password:regObj.password,
                email:regObj.email,

              }). pipe( share(),
              catchError(this.errorHandle));


                errorHandle(error) {
            let errorMessage = '';
            if(error.error instanceof ErrorEvent) {
              // Get client-side error
              errorMessage = error.error.message;
            } else {
              // Get server-side error
              errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
            }
            console.log(errorMessage);
            return throwError(errorMessage);
          }

registrationCompnent.ts

    save() {
        this.service.saveRegistration(this.regObj).subscribe(data=>{
        console.log("data from Server::"+data.text());
         },
         error => {
             console.log("Error::"+error);
         });
       }

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

из c это не сработает.

produces = MediaType.APPLICATION_JSON_VALUE

вы говорите приложению, чтобы получить json результат в теле.

return new ResponseEntity<>("User Created Successfully",HttpStatus.OK);

Но вы возвращают ResponseEntity, содержащий простой текст. Если вы не хотите возвращать json, верните объект, который можно сериализовать / десериализовать в json.

0 голосов
/ 27 февраля 2020

Я думаю, что проблема с этой строкой

console.log ("data from Server ::" + data.text ());

у вас есть записано data.text (), но в машинописном тексте нет функции с именем text (). если вы хотите преобразовать ответ сервера JSON в строку, используйте следующую строку:

console.log ("data from Server ::" + JSON .stringify (data));

, и если вы хотите получить доступ к текстовому атрибуту объекта данных, используйте следующую строку

console.log ("data from Server ::" + data.text) ;

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