Obtenez un message d'erreur du Angulaire 2 http
J'ai le code suivant dans mon service
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'))
}
Dans mon fichier de composant,
moncomposant.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);
}
);
}
Je veux imprimer le message d'erreur en cas de, par exemple Invailid url.
Lorsque j'imprime le message d'erreur, j'obtiens un objet (sans doute de la réponse de l'objet) comme suit:
Object { _body: error, status: 200, statusText: "Ok", headers: Object, type: 3, url: null }
Si j'ai ouvert ce, je ne trouve pas de message d'erreur. Est-il une meilleure façon d'obtenir precies des messages d'erreur?
Vous devez vous connecter pour publier un commentaire.
L'erreur est contenue dans le corps de la réponse, même dans ce cas. Voir l'erreur du gestionnaire d'événement onError fonction:
Vous pouvez accéder à l'aide de la méthode json sur la réponse:
Modifier
J'ai étudié un peu plus cette question. En fait, vous ne pouvez pas le message exact. Je veux dire le
net::ERR_NAME_NOT_RESOLVED
. XHR ne pas les fournir. Cela dit, vous pouvez voir que lestatus
de XHR est0
. Cela pourrait être une indication qu'il y avait un problème de la demande lors de l'envoi de la demande (il n'est pas envoyé).Voir cette question:
status
champ de cet objet... j'ai mis à jour ma réponse.J'essaie d'erreur.d'erreur et de travailler pour moi. Son obtenir l'Objet du message d'erreur.
EDIT:
Désolé!!
Essayez ceci: