【问题标题】:403 error not caught by catchError function Angular 7403错误没有被catchError函数Angular 7捕获
【发布时间】:2020-09-29 06:42:58
【问题描述】:
我写了下面的代码,当我在浏览器中运行代码时,登录 api 给出了 403 响应代码。但我无法捕捉到该错误并控制台记录它。谁能告诉我我的代码有什么问题。
this.http
.post("login", {
username,
password
}).pipe(
catchError(err => {
console.log('Handling error locally and rethrowing it...', err);
return throwError(err);
})
)
.subscribe(
(response: any) => {
}
error=> {
console.log(error);
}
)
【问题讨论】:
标签:
angular
typescript
angular-httpclient
【解决方案1】:
试试下面的方法:
let params = {
"login_id" : id,
"password" : pass
};
this.http.post(loginUrl, params, {observe:'response'}).subscribe((data:any) => {
console.log('http login -> ', data);
}, (err : HttpErrorResponse) => {
console.log('http login error -> ', err);
});
}
或者也试试这个:
this.http.post("login", {
username,
password
})
.pipe(catchError(this.errorMgmt))
.subscribe(
(response: any) => {
console.log('res',response)
}
)
errorMgmt(error: HttpErrorResponse) {
let errorMessage = '';
if (error.error instanceof ErrorEvent) {
// Get client-side error
errorMessage = error.error.message;
console.log('err',errorMessage);
} else {
// Get server-side error
errorMessage = `Error Code: ${error.status}\nMessage: ${JSON.stringify(error.error)}`;
console.log('err',errorMessage);
}
console.log('errorMgmt -> ',(errorMessage));
return throwError(errorMessage);
}