47 votes

Comment obtenir le code d'état de HttpClient en Angular 4 ?

Dans le module Http, je peux facilement obtenir le code de réponse en utilisant response.status, mais lorsque j'utilise le module HttpClient, je ne peux pas obtenir le response.status, il affiche undefined.

Alors, comment puis-je obtenir le response.status en utilisant le module HttpClient dans Angular 4. Merci de m'aider.

2 votes

Tout ceci est expliqué ici : angular.io/guide/http

0 votes

J'ai vérifié la documentation mais je n'ai pas trouvé la solution exacte pour trouver le code d'état de la réponse.

1 votes

Consultez la section "Lire la réponse complète".

83voto

Andy Danger Gagne Points 735

De cette section voici le code ajusté

http
  .post<T>('/yoururl', whateverYourPostRequestIs, {observe: 'response'})
  .subscribe(resp => {
     console.log(resp);
  });

la réponse est {observe : 'response'}. Vous pouvez alors afficher les réponses enregistrées et choisir ce que vous voulez.

11 votes

Comme la méthode est post, {observe: 'response'} serait envoyé dans le corps de la requête. Donc cela devrait être sur le troisième paramètre.

0 votes

Ce n'est pas encore très clair pour obtenir le statut ! Je n'obtiens que le corps.

1 votes

Mais j'ai besoin du deuxième argument pour envoyer des en-têtes personnalisés pour les authentifications. Comment puis-je encore ajouter {observe : 'response'} ?

-2voto

Fzum Points 437

Si vous avez besoin de passer des en-têtes personnalisés supplémentaires, par exemple pour l'autorisation, vous pouvez également passer cela à angulars post request. Puisque le troisième paramètre prend un objet pour les options, vous pourriez simplement essayer de faire ce qui suit :

return this.http.post<T>(/yoururl, yourObject, {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  }), observe: 'response'
}).pipe(
    map(/* do some mapping */)
);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X