我目前在使用 tslint 时遇到一个问题,希望有人能为我指点迷津。
我试图使用 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: Argument of type '{ headers:Headers; }' 不可赋值给 类型为 'RequestOptionsArgs' 的参数。属性类型 'headers'; 不兼容。类型'Headers'不可分配给类型'Headers'。 存在两个名称相同的不同类型,但它们互不相关。 类型 'Headers'." 中缺少属性 'keys';
感谢您的支持。
更新
从今天起,@angular/http
已被 弃用,应改用@angular/common/http
。因此,处理 http 头信息的最佳方法是导入 import { HttpHeaders } from '@angular/common/http';
(documentation).
旧答案
您应该导入的 "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';
我在正确答案的评论中找到了这个,如果能帮到别人,祝你好运。