Ich habe derzeit ein Problem mit tslint und hoffte, jemand könnte mich in die richtige Richtung weisen.
Ich versuche, eine HTTP-GET-Anforderung über HTTP zu senden, das vom Angular2-Framework bereitgestellt wird. Bei dieser Anfrage muss ich den Inhaltstyp und das Inhaberauthentifizierungstoken angeben.
Beispiel für meinen Code:
let headers = new Headers();
let authToken = this._user.getUser().JWT;
headers.append('Content-Type', 'application/json');
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
this._http.get('http://' + url '/', options)
.timeout(3000)
.subscribe(
(res) => {
Dies funktioniert jedoch, tslint beschwert sich darüber
"TS2345: Argument vom Typ '{headers: Headers;}' kann nicht dem Parameter vom Typ 'RequestOptionsArgs' zugewiesen werden. Die Eigenschaftstypen 'headers' sind nicht kompatibel. Der Typ 'Headers' kann nicht dem Typ 'Headers' zugewiesen werden. Zwei verschiedene Typen mit diesem Namen existieren, aber sie haben nichts miteinander zu tun. Die Eigenschaft 'Schlüssel' fehlt im Typ 'Kopfzeilen'. "
Ich schätze die Unterstützung.
quelle
Antworten:
Aktualisieren
Ab heute
@angular/http
ist veraltet und@angular/common/http
sollte stattdessen verwendet werden. Der beste Weg, um mit http-Headern zu arbeiten, ist der Importimport { HttpHeaders } from '@angular/common/http';
( Dokumentation ).Alte Antwort
Der
Headers
Typ, den Sie importieren sollen, istimport { Headers } from '@angular/http';
.Überprüfen Sie Ihre Importe
quelle
import { Headers, RequestOptions } from '@angular/http';
DOKUMENTATIONSie müssen Header aktualisieren durch:
let headers = {headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};
quelle
Update für Angular 5
import { RequestOptions } from '@angular/http';
Ich fand dies in den Kommentaren aus der richtigen Antwort. Wenn dies jemandem hilft, viel Glück.
Dokumentation: https://angular.io/api/http/RequestOptions
quelle
import { RequestOptions } from '@angular/http';
// Beispiel für Header vom Inhaltstyp Json
import { Http, Headers, RequestOptions } from '@angular/http'; const Url = 'http://localhost:3000/'; const headers = new Headers; const body = JSON.stringify({ title: "data" }); headers.append('Content-Type', 'application/json'); this.http.post(Url, body, { headers: headers }) .pipe(map((res => res)));
quelle