Angular2-HTTP RequestOptions HEADERS

我现在有一个问题与 tlint,并希望有人可以指出我在正确的方向。

我正在尝试使用 Angular2框架提供的 HTTP 发送一个 HTTP GET 请求。对于这个请求,我必须指定内容类型和持有者身份验证令牌。

我的代码示例:

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

然而,tslint 抱怨说,这是有效的

”TS2345: 类型为“{头: 头; }”的参数不能分配给 类型为“ RequestOptionsArgs”的参数 类型“ Header”不能分配给类型“ Header”。 存在两个具有此名称的不同类型,但它们是不相关的。 属性‘ key’在类型‘ Header’中丢失。”

谢谢你的支持。

81294 次浏览

更新

到今天为止,@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'})};

角度5更新

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

我在正确答案的评论中发现了这个,所以如果这对某人有帮助,祝你好运。

文件: https://angular.io/api/http/RequestOptions

//内容类型 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)));