Как получить контент ответа при ошибке сервера - PullRequest
1 голос
/ 22 марта 2020

I wi sh Я могу получить содержимое ответа, когда сервер возвращает ошибку с кодом 5XX или 4XX.

Вот моя конфигурация:

API Rest (Laravel) :

public function login(Request $request) {
$this->validateLogin($request);
if ($this->attemptLogin($request)) {
    $user = $this->guard()->user();
    $user->generateToken();
    return response()->json($user, 200);
}
return response()->json('Login or password unknown', 401);

}

Angular услуга:

public getUser(user: User): Observable<any> {
  return this.httpClient.post(this.employeeAPI + 
  'login', JSON.stringify(user), { headers: this.headers });
}

Angular компонент:

public login(): void {
  this.loginService.getUser(this.user).subscribe(
    (user) => {
      this.user = user;
      this.router.navigate(['/home']);
    },
    (error) => {
    // Is it possible to get the content of response ?

    }
  );
}

Спасибо.

1 Ответ

1 голос
/ 22 марта 2020

Если вы хотите посмотреть на ответ с более высокой точки зрения, вы должны наблюдать ответ, подобный этому:

 return this.httpClient.post(this.employeeAPI
     + 'login', JSON.stringify(user), { headers: this.headers, observe: 'response' });

Ответ будет иметь тип HttpResponse. Это означает, что вы сами извлекаете body из ответа, но это также позволяет вам получить код состояния.

...