1
votes

Comment vérifier le code d'état http 200 en angulaire s'il n'est pas disponible dans la réponse JSON

Service d'authentification

logout() {
    this.chk.logout().subscribe((res: any)=>{
      if(res.status == 200) //doesnt work{
      console.log(res);
      })
      }
    }, (err)=>{
      alert("There was a problem logging you out");
    });
}

Le code d'état ne s'affiche pas dans la réponse json du back-end, mais s'affiche sur l'état du facteur. Comment obtenir le code d'état.

Fichier ts

 logout() {
      return this.http.post(this.logOutApi, null);
    }


0 commentaires

3 Réponses :


0
votes

Il vient sous error callback

, (err)=>{
  alert(err.status);
});


0 commentaires

2
votes

Vous pouvez utiliser l'option {observe: 'response'} pour lire la réponse complète , y compris le code d'état dans le gestionnaire de réussite. Cela vous donnerait accès à une réponse de type HttpResponse :

Service:

logout() {
    this.chk.logout().subscribe(
      (res) => {
        if (res.status == 200) {
          console.log(res);
        })
      }
    }, (err) => {
      alert("There was a problem logging you out");
    });
}

Composant:

logout() {
  // you should consider providing a type
  return this.http.post(this.logOutApi, null, { observe: 'response' });
}

J'espère que cela vous aidera!


2 commentaires

qu'est-ce que cela signifie 'fournir un type'


typescript ne connaîtra pas la forme de votre objet retourné, vous devez définir le type de réponse pour en faciliter la consommation. this.chk.logout () ...



0
votes

À part 200, vous obtenez le code d'état dans votre bloc d'erreur. Donc ici, vous devrez gérer en conséquence comme ci-dessous

 logout() {
        this.chk.logout().subscribe((res: any)=>{
          if(res.status == 200) //doesnt work{
          console.log(res);
          })
          }
        }, (error)=>{
          if (error.status === 500) {
                alert('Server down please try after some time');
          }
          else if (error.status === 404) {
               alert('Server down. Please try after some time');
         }

        });
    } 

J'espère que cette aide


0 commentaires