Dies funktioniert für mich:
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 });
}
}
Dies beginnt mit einer privaten Variable, die den anfänglichen Satz von Headern halten, set
verwenden. Dann verwendet append
, um einen zusätzlichen Header hinzuzufügen, bevor Sie den HTTP-Aufruf ausführen.
Beachten Sie, dass append
ein HttpHeaders-Objekt zurückgibt, weshalb ich die Ausgabe einer Konstante zuweisen. Nur append
von selbst ausgeführt, denken, dass die bestehende _headers
wird geändert werden, wird Ihnen nicht die Ergebnisse geben, die Sie erwarten könnten. Ich habe bestätigt, dass HttpHeaders unveränderlich sind.
EDIT: Von der HttpHeaders docs: Unveränderlichen Satz von Http-Header, mit faulen Parsing.
[Aktivieren Sie diese] (https://github.com/angular/angular/issues/19044) –