angular - 处理http.get()中的错误

标签 angular http ionic-framework error-handling

我正在尝试通过使用以下代码访问终结点URL

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 => {

}

范围?

最佳答案

您可以执行以下操作:

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


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

但是我想这仍然会抛出“未知错误”。

从我的 Angular 来看
GET https://endpoint/file.php?someParams net::ERR_INTERNET_DISCONNECTED

从浏览器本身派生而来,Angular无法访问。

关于angular - 处理http.get()中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49412823/

相关文章:

angular - Primeng 数据表 rowTrackBy

perl - 为什么当我在 mod_perl 中注册清理处理程序时浏览器会挂起?

android - 删除带正文的请求(不使用已弃用的 HttpEntity)

angularjs - Ionic/Angular JS - 从反向地理定位中获取特定值

angularjs - ionic 1 AngularJs 1 与 ionic 2 AngularJs 2?

Angular 2 : Have Child Route Component Replace Parent in router-outlet

javascript - 无法读取未定义的属性(读取 'write' )

angular - TemplateRef 中未定义 ElementRef

http - 如果请求是 HEAD,If-Modified-Since HTTP Header 应该返回什么响应?

javascript - 使用 Ionic Framework 点击/单击无法在移动设备上运行的选择元素