Angular 2 - 如何在调用Web服务时捕获401错误

时间:2017-02-21 18:21:32

标签: javascript angular try-catch

我通过发送用户的用户名和密码来呼叫网络服务。如果给出了错误的用户名和密码,我会收到401 UNAUTHORIZED错误。我希望能够在401发生时捕获,以便在屏幕上输出错误消息。

以下是调用服务的代码:

return this.client.get<User>(this.BASEURL + 'api/id', new User(), null, encodedString)
        .map(result => {
            // If authorized, store the relevant information
            if (result) {
                result = new User().deserialize(result);
            }
            this.user.next(result);
            return result;
        }, this)
        .catch(this.handleError);

我试图在整个事情中使用try catch,但它没有做任何事情(我因为异步而猜测)。我也尝试过console.log(结果);在if(结果)之后,但由于401错误,我从未到达.map。我不确定如何处理这个问题。谢谢!

1 个答案:

答案 0 :(得分:2)

您必须定义handleError方法。看看示例here