Necesito obtener el código de estado de la siguiente llamada http y devolverlo como una cadena
//This method must return the status of the http response confirmEmail(mailToken):Observable<String>{ return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken) .map(this.extractData) .catch(this.handleError); }¡gracias!
Agregar respuesta para versiones de Angular> = 4.3 (incluidas 11) con el nuevo HttpClient que reemplaza a http
import {HttpClientModule} from '@angular/common/http'; // Notice it is imported from @angular/common/http instead of @angular/httpCómo obtener el código de respuesta o cualquier otro encabezado:
http.get( `${this.baseUrl}users/activate?mailToken=${mailToken}`, {observe: 'response'} ) .subscribe(response => { // You can access status: console.log(response.status); // Or any other header: console.log(response.headers.get('X-Custom-Header')); });Como se señaló en el comentario de @Rbk,
El objeto {observe: 'response'} es lo que hace que el objeto de respuesta completo esté disponible.
Simplemente modifique su código de la siguiente manera para almacenar su estado de respuesta en un campo:
responseStatus: number; //This method must return the status of the http response confirmEmail(mailToken):Observable<String> { //Edited for working with HttpClient on Angular >= 4.3 return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken, {observe: 'response'}) .map((response: Response) => { this.responseStatus = response.status; return this.extractData(response); } .catch(this.handleError); }Y luego muéstrelo en la plantilla HTML de su componente:
<p class='responseStatus'>{{responseStatus}}</p>Es simple !!
Dentro de su función extractData
extractData (res){ //res.status will be your status code // res.statusText will be your status Text }