0
votes

Pourquoi la demande du client HTTP renvoie-t-elle une erreur en tant que chaîne au lieu de HTTPERRORRESPONSE?

J'utilise httpClient pour créer une demande postale et retourner observable à l'appelant. Lorsqu'un appelant abonna et essaie d'attraper une erreur, l'erreur est une chaîne au lieu de la HTTPerrorResponse prévue, comme généralement observée dans la documétation. capture d'écran de la console de développement

J'ai essayé de gérer l'erreur directement dans la méthode d'appel à l'aide d'un tuyau avec un trapore, mais il reçoit La même erreur que celle ci-dessus.

Voici le code de ma méthode de service xxx


0 commentaires

3 Réponses :


0
votes
 /** Error Handling method */

  handleError(error: HttpErrorResponse) {
    if (error.error instanceof ErrorEvent) {
      // A client-side or network error occurred. Handle it accordingly.
      console.error('An error occurred:', error.error.message);
    } else {
      // The backend returned an unsuccessful response code.
      // The response body may contain clues as to what went wrong,
      console.error(
        `Backend returned code ${error.status}, ` +
        `body was: ${error.error}`);
    }
    // return an observable with a user-facing error message
    return throwError(
      'Something bad happened; please try again later.');

  }

1 commentaires

J'ai essayé quelque chose de Simiral, mais ça n'a pas fonctionné. Voici la sortie de votre code de votre code: Sortie de la console



0
votes

Vous pouvez vérifier la documentation à nouveau, car le message d'erreur est répertorié dans la documentation à la chaîne de type. https://angular.io/api/common/http/httperroresponse#constructeur ( ) . Aimez également remarquer que le serveur frappe un statut 500, vous pourriez envisager https://angular.io/ API / Common / http / httpterceptor aussi.


1 commentaires

Oui, le message est de type chaîne, pas l'erreur. Si j'ai appelé erreur.message, la sortie aurait un sens, pas comme ça.



2
votes

J'ai trouvé le problème, j'ai oublié que j'ai un intercepteur qui changeait l'erreur. Si quelqu'un d'autre est comme oublieux que moi, vérifiez vos intercepteurs!


0 commentaires