web-dev-qa-db-ja.com

ステータスコード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!

10
Maurizio Rizzo

Angular> = 4.3(8を含む)のバージョンに対する回答を、HttpClientを置き換える新しいhttpに追加する]

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'}は、完全な応答オブジェクトを利用可能にするものです。

ドキュメントの確認

19
FRECIA

次のようにコードを修正して、フィールドに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>
8
Karbos 538

これは私がそれをやった方法です:

checkResponse() {
  this.http.get(this.url, { observe: 'response' })
  .subscribe(response => console.log(response.status));
}

Angular 7。

4
tomfl

簡単だ !!

ExtractData関数内

extractData (res){
//res.status  will be your status code
// res.statusText  will be your status Text
}
3
CharanRoot

クエリパラメータとその他のオプションがある場合は、追加する必要があります

{ observe: 'response', params: new HttpParams() } 

2番目の引数として。get、.post、.patch etcメソッドに。その後、コールバックresponse.statusを介してアクセスできます。あなたが私のような人で、これを行う必要がある場合は、同じ配列にパラメーターオプションを入れてください。

create(resource: Resource, query?: Query): Observable<Resource> {
  return this._httpClient
    .post(`${this._apiUrl}${this._endpoint}`, this._serializer.toJson(resource), {
      params: query ? new HttpParams({ fromObject: query.toOData() }) : null,
      observe: 'response'
    })
    .map(
      (response): Resource => {
        this.handleStatusCode(response.status);
        try {
          return this._serializer.fromJson(response);
        } catch (err) {
          throw new Error(`Error parsing resource. Details: ${err}`);
        }
      }
    );
}
0
Nick Gallimore
    confirmEmail(mailToken):Observable<String> {
   return this.http.get(this.baseUrl+"users/activate?mailToken="+mailToken)
     .pipe(map(data => {
       return data.httpStatus
         }));
     .catch(this.handleError);
}

これで問題が解決することを願っています。

0
RajuPedda