ステータスコードの取得 http.get response angular2

以下のhttpコールのステータスコードを取得し、それを文字列として返す必要があります。

//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);

}

thx!

httpに代わる新しいHttpClient`を持つAngular >= 4.3 (9を含む)のバージョンへの回答を追加します。

import {HttpClientModule} from '@angular/common/http'; // Notice it is imported from @angular/common/http instead of @angular/http

レスポンスコードやその他のヘッダーを取得する方法。

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'));
  });

@Rbkさんのコメントにもあるように

オブジェクト {observe: 'response'} は、完全なレスポンスオブジェクトを利用できるようにするものです

ドキュメントの確認を参照してください。

解説 (1)

以下のようにコードを修正して、responseStatusをフィールドに格納してください。

responseStatus: number;

//This method must return the status of the http response
confirmEmail(mailToken):Observable {
//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);

}

そして、それをコンポーネントのHTMLテンプレートに表示してください。

<p class='responseStatus'>{{responseStatus}}</p>
解説 (7)

簡単です。

extractData関数の中で

extractData (res){
//res.status  will be your status code
// res.statusText  will be your status Text
}
解説 (0)