Angular 2个http服务。获取详细错误信息

Angular 2 http service. Get detailed error information

执行对离线服务器的 Angular2 http 调用在它的 "error response" 对象中没有提供太多信息实际上相同的信息)。但是正如您在控制台的屏幕截图上看到的那样,zone.js 以某种方式显示了实际错误。 那么,我怎样才能得到这个特定的错误信息 (net::ERR_CONNECTION_REFUSED)?

谢谢。

如果不深入研究代码,我的预期是如果服务器无法访问,则服务器不会返回任何响应。因此 Response 对象保持其初始化状态。

您可以处理错误消息,使其更易于阅读。这绝对可以扩展:

public Get() {
    return this.http.get(this.URL).map(this.extractData)
        .catch(this.handleError);
}

public extractData(res: Response) {
    let body = res.json();
    return body || {};
}

public handleError(error: any) {
    let errMsg = (error.message) ? error.message :
        error.status ? `${error.status} - ${error.statusText}` : 'Server error';
    console.error(errMsg);
    return Observable.throw(errMsg);
}

Check out this part of the docs on error handling.

每当服务器不响应时,response.status 将始终等于 0(零)

{
  type: 3, //ResponseType.Error
  status: 0, // problem connecting endpoint
}

另请注意,当您执行 CORS 请求时,但来源(浏览器中的 url)未获得授权(不在远程端点中配置的主机名的允许列表中),响应将与上述类似,类型属性除外,它将等于 4 = ResponseType.Opaque...

这意味着,已建立连接,但例如,返回的 OPTIONS 请求 headers 不包含来源或从 HTTP 来源执行 HTTPS 请求。