2017-04-04 10 views
57

Ich habe derzeit ein Problem mit tslint und hoffte, dass jemand mich in die richtige Richtung zeigen könnte.Angular2 - HTTP RequestOptions HEADERS

Ich versuche, eine HTTP-GET-Anfrage mit HTTP vom Angular2-Framework zu senden. Bei dieser Anfrage muss ich den Inhaltstyp und das Träger-Authentifizierungs-Token angeben.

Beispiel meines Codes:

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 reklamiert und

„TS2345: Argument vom Typ '{Header: Header;}' nicht übertragbar ist Parameter des Typs "RequestOptionsArgs". Typen der Eigenschaft "headers" sind inkompatibel. Typ "Headers" ist nicht dem Typ "Headers" zuweisbar. Zwei verschiedene Typen mit diesem Namen existieren, aber sie sind nicht verwandt. Property 'ke 'fehlt' in 'Kopfzeilen'. "

Ich schätze die Unterstützung.

Antwort

173

aktualisieren

Ab heute hat @angular/httpdeprecated gewesen, und @angular/common/http sollte stattdessen verwendet werden. Daher ist der beste Weg, mit http-Headern zu arbeiten, import { HttpHeaders } from '@angular/common/http'; (documentation) zu importieren.

Alte Antwort

Die Headers Typ Sie sollen importieren import { Headers } from '@angular/http';.

Prüfen Sie Ihre Importe

+3

Das war es! Ich benutze Phpstorm und ist normalerweise ziemlich gut und zeigt mir deutlich, dass ich eine Abhängigkeit verpasst habe, aber diesmal nicht. Außerdem finde ich die tslint-Nachricht nicht klar. Prost :) – Zander17

+3

Irgendwie gibt es eine Header-Klasse, auch wenn Sie sie nicht importieren. Sie müssen also sicherstellen, dass Sie das richtige importieren (siehe Antwort oben), damit es funktioniert. – GoTo

+0

Danke war mein Fehler !!! Vielen Dank @bviale –

1

Sie haben Header zu aktualisieren, indem Sie:

let headers = {headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};