从Angular 2 http获取错误消息
发布时间:2020-12-17 07:56:17 所属栏目:安全 来源:网络整理
导读:我的服务中有以下代码 myService.ts makeHttpGetRequest(url){ return Observable.interval(config.SUPERVISOR_REFRESH_INTERVAL * 1000) .switchMap(() = this.http.get(url)) .map(res = res.json()) .timeout(config.REQUEST_TIMEOUT * 1000,new Error('T
我的服务中有以下代码
myService.ts makeHttpGetRequest(url){ return Observable.interval(config.SUPERVISOR_REFRESH_INTERVAL * 1000) .switchMap(() => this.http.get(url)) .map(res => res.json()) .timeout(config.REQUEST_TIMEOUT * 1000,new Error('Time out occurred')) } 在我的组件文件中 myComponent.ts ngOnInit(){ this._myService.makeHttpGetRequest(myurl) .subscribe( data => { this.supervisorServers = data; } },error => { this.error = true; console.log(error); //gives an object at this point this.showError(error); } ); } 我想打印错误信息,以防万一Invailid网址. Object { _body: error,status: 200,statusText: "Ok",headers: Object,type: 3,url: null } 如果我打开它,我找不到错误信息.是否有更好的方法来获取precies错误消息?
即使在这种情况下,错误也包含在响应正文中.请参阅错误事件处理程序onError函数:
> https://github.com/angular/angular/blob/master/modules/@angular/http/src/backends/xhr_backend.ts#L96 您可以使用响应中的json方法访问它: error => { this.error = true; console.log(error.json()); //gives the object object this.showError(error.json()); } 编辑 我对此问题进行了更多调查.事实上,你无法得到确切的信息.我的意思是net :: ERR_NAME_NOT_RESOLVED. XHR不提供它.也就是说,您可以看到XHR的状态为0.这可能暗示发送请求时请求有问题(实际上并未发送). error => { (...) var err = error.json(); var status = err.currentTarget.status; (...) } 看到这个问题: > XMLHttpRequest() & net::ERR_NAME_NOT_RESOLVED (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |