以下の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'}
は、完全なレスポンスオブジェクトを利用できるようにするものです。
ドキュメントの確認を参照してください。
以下のようにコードを修正して、responseStatusをフィールドに格納してください。
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);
}
そして、それをコンポーネントのHTMLテンプレートに表示してください。
<p class='responseStatus'>{{responseStatus}}</p>