requestoptions headers angular http typescript tslint

headers - requestoptions angular 5



Angular2-Encabezados de HTTP RequestOptions (4)

Actualmente tengo un problema con tslint y esperaba que alguien pudiera señalarme en la dirección correcta.

Estoy tratando de enviar una solicitud HTTP GET utilizando HTTP proporcionado por el marco Angular2. Con esta solicitud, debo especificar el tipo de contenido y el token de autenticación de portador.

Ejemplo de mi código:

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) => {

Esto funciona, sin embargo, tslint se queja de que

"TS2345: El argumento del tipo ''{encabezados: Encabezados;}'' no se puede asignar al parámetro del tipo ''RequestOptionsArgs''. Los tipos de propiedad ''encabezados'' son incompatibles. El tipo ''Encabezados'' no se puede asignar al tipo ''Encabezados''. Dos tipos diferentes con este nombre existen, pero no están relacionados. Faltan ''claves'' de propiedad en el tipo ''Encabezados''. "

Agradezco el apoyo.


// ejemplo de encabezados de tipo de contenido 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)));


Tienes que actualizar los encabezados por:

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


Actualización para Angular 5

import { RequestOptions } from ''@angular/http'';

Encontré esto en los comentarios de la respuesta correcta, así que si esto ayuda a alguien, buena suerte.

Documentación: DOCUMENTATION


Actualizar

A partir de hoy, @angular/http ha quedado en deprecated y en su lugar se debe utilizar @angular/common/http . Entonces, la mejor manera de trabajar con encabezados http es importar import { HttpHeaders } from ''@angular/common/http''; ( documentation ).

Vieja respuesta

El tipo de Headers que debe importar es import { Headers } from ''@angular/http''; .

Revisa tus importaciones