У меня есть код для входа на сервер. Поэтому я использую HTTP-клиент angular и сервис авторизации. Если я отправляю неверные данные на сервер, я получаю ожидаемый ответ от сервера, но выполнение должно где-то остановиться из-за внутренних элементов angular.
Регистрируется следующий вывод консоли:
post data=login (in auth.service.ts)
ERROR
Object { headers: {…}, status: 401, statusText: "Unauthorized", url: "http://localhost/login", ok: false, name: "HttpErrorResponse", message: "Http failure response for http://localhost:3000/login: 401 Unauthorized", error: {…} }
(in core.js:4002)
Может кто-нибудь объяснить, почему?
Спасибо.
в обслуживании
login(loginUrl: any, body: { pass: string }) {
console.log('post data=login');
return this.http.post(loginUrl, body, httpOptions);
}
в компоненте
login(): void {
this.authService.login(loginUrl, data).subscribe((serverLoginResponse: any) => {
// successful log in, continue to do stuff.
}, (serverLoginError: any) => {
console.log('error in subscribe err');
console.log(serverLoginError.statusText, serverLoginError.status);
if (serverLoginError.status === 401) {
this.loginForm.controls['password'].setErrors({invalid: true});
}
});
});
}
в шаблоне
<input #passwordField id="password" class="form-control" type="password" formControlName="password" required>
<div [hidden]="!loginForm.controls['password'].hasError('invalid')" class="alert alert-danger">
There is no user account matching the entered data! Try again.
</div>