Запрос на отправку возвращает ошибку, наблюдаемую в Angular, несмотря на то, что он был успешно выполнен на сервере, но почтальон возвращает правильный ответ - PullRequest
0 голосов
/ 29 сентября 2019

Все мои угловые почтовые запросы возвращают наблюдаемую ошибку, несмотря на то, что она успешно выполнена на стороне сервера.Я не знаю, что делаю неправильно.

КОМПОНЕНТ:

 this.postInit.postInitialSetup(this.userForm).subscribe(

    (data: string) => {

      if (data === 'Posted Successfully') {
        this.userForm.reset();
        this.router.navigate([this.path]);
      }
    },

    (error: any) => {
      this.errored = true;
      this.serviceErrors = error;

    }

  );

СЛУЖБА ВЫПОЛНЕНИЯ ЗАПРОСА HTTP:

import { Injectable } from '@angular/core';
 import { HttpErrorResponse, HttpClient, HttpHeaders } from 
 '@angular/common/http';
import { map, catchError } from 'rxjs/operators';
 import { FormGroup } from '@angular/forms';
  import { throwError } from 'rxjs';

 @Injectable({
providedIn: 'root'
})
 export class SetupService {

initialSetUpUrl = 'api/initialSetup';
httpOptions = {
headers: new HttpHeaders({
  'Content-Type': 'application/json'
})
 };
 constructor(private http: HttpClient) { }



postInitialSetup(postData: FormGroup) {

return this.http.post(this.initialSetUpUrl, postData.value, 
this.httpOptions).pipe(

  map((data: string) => {
    return data;
  }),


  catchError(this.handleError)

);

  }



 private handleError(errorResponse: HttpErrorResponse) {

if (errorResponse.error instanceof ErrorEvent) {
  // A client-side or network error occurred. Handle it accordingly.
  console.error('An error occurred:', errorResponse.error.message);
} else {
  // The backend returned an unsuccessful response code.
  // The response body may contain clues as to what went wrong,
  console.error(
    `Backend returned code ${errorResponse.status}, ` +
    `body was: ${errorResponse.error}`);
  }
  // return an observable with a user-facing error message
  return throwError('Something bad happened; please try again later.');
}

}

Этоэто данные, которые отправляются на сервер Befor posting

Это ответ после публикации: enter image description here

Может кто-нибудь пожалуйстапомогите мне определить, что я мог делать неправильно в своем сервисном коде или коде компонента, учитывая, что он является относительно новым для angular и наблюдаемых в целом.

1 Ответ

0 голосов
/ 29 сентября 2019

Полагаю, ваша проблема в том, что вы ожидаете, что ваши данные в .subscribe() будут строкой:

 (data: string) => {
    ...
 },

Там у вас должен быть HttpResponse объект.

ТогдаВы можете проверить:

 (data: HttpResponse) => {
    if (data.status === 200) { // do something }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...