Angular 5 перенаправляет домой в случае http сообщения об ошибке - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть простой сервис, который выполняет запрос http:

@Injectable() export class AuthService {

    ......
    ......
    attemptAuth(user: string, password: string): Observable<any> {

        const credentials = { user:user, password:password };
        return this.http.post(this.authUrl, credentials)
            .catch(this.errorHandler);
    }
    ......
    ......
    errorHandler(error: HttpErrorResponse) {
        return Observable.throw(error);
    }
}

methodAuthFunction вызывается компонентом следующим образом:

this.authService.attemptAuth(user, password).subscribe(
  data => {
    ........
  },
  error => {
    ........
  }
);

Все в порядке, кроме случаев, когда я отправляю неверный пользователя / пароль: в случае ошибки происходит автоматическое перенаправление на домашнюю страницу веб-приложения вместо того, чтобы оставаться на текущей странице и выполнять код внутри раздела error => .. .

Есть идеи? Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Проблема решена. Был http-перехватчик, вызывающий навигацию программно. Спасибо за вашу помощь!

0 голосов
/ 04 сентября 2018

Обычный подход состоит в том, чтобы не определять обработчик ошибок:

attemptAuth(user: string, password: string): Observable<any> {
    const credentials = { user:user, password:password };
    return this.http.post(this.authUrl, credentials)
        ; // REMOVE THIS: .catch(this.errorHandler);
}

Если ошибки не будут выброшены как исключение, они должны быть переданы вашему обработчику ошибок подписки.

...