How to deal with http status codes other than 200 in Angular 2

前端 未结 2 1353
走了就别回头了
走了就别回头了 2020-11-30 23:17

Right now the way I do http requests (borrowed from this answer) is this:

POST(url, data) {
        var headers = new Headers(), authtoken = localStorage.get         


        
2条回答
  •  半阙折子戏
    2020-11-30 23:59

    Include required imports and you can make ur decision in handleError method Error status will give the error code

    import { HttpClient, HttpErrorResponse } from '@angular/common/http';
    import {Observable, throwError} from "rxjs/index";
    import { catchError, retry } from 'rxjs/operators';
    import {ApiResponse} from "../model/api.response";
    import { TaxType } from '../model/taxtype.model'; 
    
    private 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.');
      };
    
      getTaxTypes() : Observable {
    return this.http.get(this.baseUrl).pipe(
      catchError(this.handleError)
    );
      }
    

提交回复
热议问题