Droit maintenant, la façon dont je fais les requêtes http (emprunté à cette réponse) est-ce:
POST(url, data) {
var headers = new Headers(), authtoken = localStorage.getItem('authtoken');
headers.append("Content-Type", 'application/json');
if (authtoken) {
headers.append("Authorization", 'Token ' + authtoken)
}
headers.append("Accept", 'application/json');
var requestoptions = new RequestOptions({
method: RequestMethod.Post,
url: this.apiURL + url,
headers: headers,
body: JSON.stringify(data)
})
return this.http.request(new Request(requestoptions))
.map((res: Response) => {
if (res) {
return { status: res.status, json: res.json() }
}
});
}
Cela fonctionne bien, sauf pour le fait que angular2 échouera si le code d'état renvoyé est rien d'autre que de 200. Par exemple, si un utilisateur veut publier quelque chose et que le serveur retourne 400, angulaire 2 va lancer l'exception:
uncaught exception: [object object]
Comment puis-je éviter cela? J'aimerais gérer ces codes de statut dans mon application, afin d'améliorer l'expérience utilisateur (afficher les erreurs, etc)