如何使用Angular 4获得完整的错误响应?

时间:2017-09-22 22:23:46

标签: angular

我正在使用Angular HttpClient发出http请求。

http.get(`${hostUrl}/myproject/infrastructure-status`)
.subscribe(
(resp) => {
  // handle response
},
(error) => {
 console.log(error)
});

在我的控制台中,记录了类型为HttpErrorResponse的错误: Error logged on console

但是,我网络标签上的后端响应不一样:

Headers error network tab

enter image description here

我可以在Angular中获得完整的错误响应吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

您获得的错误也是一个响应对象,因此如果您将其转换为响应,则可以读取正文。 对我来说这很有效:

http.get(`${hostUrl}/myproject/infrastructure-status`)
           .subscribe(
           (resp) => {
              // handle response
           },
           (error) => {
              if (error instanceof Response) {
                 console.log(error.text());
              }
           });

我觉得奇怪的是你得到了一个ProgressEventObject。我总是得到一个包含正文的Response对象。也许区别在于你的情况下的响应是我正在测试的HTML,调用返回JSON的WebApi。