代码之家  ›  专栏  ›  技术社区  ›  Pierrick Martellière

角度6不工作的错误处理

  •  0
  • Pierrick Martellière  · 技术社区  · 8 年前

    我是角度方面的新手,使用这个解决方案根据我的模型生成实体和服务。

    其中一个生成的方法是执行一个日志请求来记录我的用户,并且该请求被很好地发送。

    但是当我得到一个错误 Bad credentials 从我的API中,错误没有被处理,我在Angular应用程序上得到一个运行时错误,控制台显示如下错误:

    的HTTP失败响应 http://my-api.com/api/user/login :错误代码

    这是我的代码:

    /**
         * Log a user by its credentials.
         */
        login(username : string, password : string) : Observable<NmUser> {
            let body = JSON.stringify({
                'username': username,
                'password': password
            });
            console.log(body);
            return this.http.post(this.userUrl + 'login', body, httpOptions)
                .pipe(
                    map(response => new NmUser(response)),
                    catchError(this.handleError)
                );
        }
    
    // sample method from angular doc
        private handleError (error: HttpErrorResponse) {
            // TODO: seems we cannot use messageService from here...
            let errMsg = (error.message) ? error.message : 'Server error';
            console.error(errMsg);
            if (error.status === 401 ) {
                window.location.href = '/';
            }
            return Observable.throw(errMsg);
        }
    

    我做错什么了?欢迎任何帮助。

    谢谢!

    1 回复  |  直到 8 年前
        1
  •  2
  •   Amit Chigadani    8 年前

    errorHandler()

    return Observable.throw(errMsg);

    Observable

    this.service.login(username, password)
        .subscribe(data => {},
                   error => {                     
                       // redirect to some error component
             })
    

    Observable.throw

    推荐文章