【问题标题】: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);
      }
    

    【讨论】:

    • 它没有帮助。仍然无法捕捉到错误:)
    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2019-09-15
    相关资源
    最近更新 更多