【问题标题】:Handling error in http.get()处理 http.get() 中的错误
【发布时间】:2018-08-30 22:56:45
【问题描述】:

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

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

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

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

}

范围?

【问题讨论】:

    标签: angular http ionic-framework error-handling


    【解决方案1】:

    你可以这样做:

    import { Response } from '@angular/http';
    
    
    (error: Response) => {
       const text = error.text();
       console.log(text);
    });
    

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

    从我的角度来看消息

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

    源自浏览器本身,Angular 无法访问。

    【讨论】:

    • 是的,您可以假设状态为 0 的错误不是来自服务器,因此很可能是连接错误。
    猜你喜欢
    • 2014-10-29
    • 2017-03-10
    • 1970-01-01
    • 2011-04-26
    • 2017-12-20
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    相关资源
    最近更新 更多