2017-11-20 15 views
0

プロジェクトでは、HttpClientの両方を使用してヘッダーパラメーターを取得しました。 Httpはヘッダパラメータを返しますが、HttpClientはヘッダパラメータを返しません。HttpClient:応答ヘッダーにアクセスできない

constructor(private http: Http, private httpClient: HttpClient) {} 
getContent() { 
     const url = ''; 
     return this.http.post(url, data) 
      .map((res: HttpResponse<any>) => { 
       console.log('http content', res); 
      }); 


     return this.httpClient.post(url, data, { observe: 'response' }) 
      .map((res: HttpResponse<any>) => { 
       console.log('httpClient content',res); 
      }); 
} 

コンソールでチェックすると、httpはヘッダーを含む応答を返しますが、httpClientはヘッダーに空の配列を返します。

ブラウザインスペクタの[ネットワーク]タブでチェックすると、すべてのヘッダパラメータが表示されます。

サーバーには、次のCORSのオプションを受け付けます。

origin: '*', 
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', 
    allowedHeaders: 'Origin,X-Requested-With,x-access-token,Content-Type,Authorization,Accept,jwt', 
    exposedHeaders: 'Content-Type,Authorization,jwt' 

は私のHttpClientを使用してヘッダを取得する方法を見つけ出す助けてください。

ありがとうございます。

+0

多分、同じプロジェクトで(http&httpClient)を両方使用しないでください。httpを外してチェックしてみてください。 – pioro90

+0

resの種類を削除しようとしています – pioro90

答えて

5

あなたはHttpClientで正しい軌道に乗っています。ヘッダーにはget()メソッドを使用する必要があります。

this.httpClient.post(url, data, {observe: 'response'}) 
    .map((res: HttpResponse<any>) => { 
     let myHeader = res.headers.get('my-header'); 
     return res; 
    }); 

ここで、my-headerは、取得しようとしているヘッダー応答です。

関連する問題