处理http.get()中的错误

时间:2018-03-21 17:21:17

标签: angular http ionic-framework error-handling

我正在尝试使用以下代码访问端点网址

this.http.get<IApiResponse>(this.endpointURL, {headers: headers, params: params}).subscribe(
            (response:IApiResponse) => {         
              // handle response
            },
            error => {
              // handle error
              console.log(error);
            }
          );

此方法可以正常工作。但是当我运行此应用程序的设备没有互联网连接时,我在chrome控制台中得到以下输出:

GET https://endpoint/file.php?someParams net::ERR_INTERNET_DISCONNECTED

HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
error:ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: "error", …}
headers:HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, headers: Map(0)}
message:"Http failure response for (unknown url): 0 Unknown Error"
name:"HttpErrorResponse"
ok:false
status:0
statusText:"Unknown Error"
url:null
__proto__:HttpResponseBase

第二个输出似乎是来自console.log(error);的输出,但是这个输出没有给我任何有用的信息("Unknown Error")。我不知道第一个错误消息来自哪里(它的背景在控制台中是红色的),但那是包含实际有用信息而我无法访问的信息。

如何确定

中的错误
error => {

}

范围?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

import { Response } from '@angular/http';


(error: Response) => {
   const text = error.text();
   console.log(text);
});

但我想这仍然会引发&#34;未知错误&#34;。

从我的角度来看消息

GET https://endpoint/file.php?someParams net::ERR_INTERNET_DISCONNECTED

源于浏览器本身,无法通过Angular访问。