2017-12-20 4 views
-1

HttpHeadersでHttpClient経由でHTTPリクエストにヘッダーを使用する方法を理解しようとしています。角5のHttpHeadersにヘッダーを設定する方法

const headers = new HttpHeaders(); 
headers.append('foo', 'bar'); 
headers.set('foo', 'bar'); 

console.log(headers.get('foo')) // null 

それだけでこのように動作します:

const headers = new HttpHeaders().set('foo', 'bar'); 
console.log(headers.get('foo')) // bar 

ヘッダを追加するための特別な方法はありますか?それともバグですか?

+0

[これをチェック](https://github.com/angular/angular/issues/19044) –

答えて

0

これが私の作品:

import { Injectable } from '@angular/core'; 
import { HttpClient, HttpHeaders } from '@angular/common/http'; 
import { Observable } from 'rxjs/Observable'; 

const url = `https://sampleapi.com`; 

@Injectable() 
export class BasicService { 
    private _headers = new HttpHeaders().set('Content-Type', 'application/json'); 
    constructor(private httpClient: HttpClient) { } 

    getWithHeader(): Observable<any> { 
    const headers = this._headers.append('foo', 'Bar'); 
    return this.httpClient.get<any>(url, { headers : headers }); 
    } 
} 

これはsetを使用して、ヘッダの最初のセットを保持しているプラ​​イベート変数で始まります。次に、appendを使用して、Httpコールを行う前に追加のヘッダーを追加します。

appendがHttpHeadersオブジェクトを返すことに注意してください。なぜなら、出力をconstに割り当てる理由です。ただappendを実行して、既存の_headersが変更されると思っても、期待した結果は得られません。私はHttpHeadersが不変であることを確認しました。

編集:HttpHeadersからdocs:怠惰な解析を伴う不変のHttpヘッダーセット。

関連する問題