Angular2-заголовки HTTP RequestOptions


В настоящее время у меня есть проблема с tslint и я надеялся, что кто-то может указать мне правильное направление.

Я пытаюсь отправить запрос HTTP GET, используя HTTP, предоставляемый платформой Angular2. В этом запросе я должен указать тип содержимого и маркер аутентификации носителя.

Пример моего кода:

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

Это работает, однако, тслинт жалуется, что

"TS2345: аргумент типа' { headers: Headers;} ' не присваивается параметр введите 'RequestOptionsArgs'. Типы свойств "заголовки" несовместимость. Тип "заголовки" не присваивается типу "заголовки". Существуют два различных типа с таким названием, но они не связаны между собой. Собственность "ключи" отсутствует в тип 'заголовков'."

Я ценю вашу поддержку.

3 63

3 ответа:

Обновить

На сегодняшний день @angular/http был устаревшим, и вместо него следует использовать @angular/common/http. Поэтому лучший способ работы с заголовками http-это импорт import { HttpHeaders } from '@angular/common/http'; (документация ).

Старый ответ

Тип Headers, который вы должны импортировать, - import { Headers } from '@angular/http';.

Проверьте импорт

Вы должны обновить заголовки следующим образом:

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

Обновление для Angular 5

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

Я нашел это в комментариях к правильному ответу, так что если это кому-то поможет, удачи.

Документация: https://angular.io/api/http/RequestOptions