我目前对tslint有一个问题,希望有人能给我指出正确的方向。
我正在尝试使用Angular2框架提供的HTTP发送HTTP GET请求。对于这个请求,我必须指定content-type和持有者身份验证令牌。
我的代码示例:
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:类型为'{ headers: Headers;}‘的参数不可分配给类型为'RequestOptionsArgs’的参数。属性'Headers‘的类型不兼容。类型'headers’不可分配给类型'Headers‘。存在两个具有此名称的不同类型,但它们不相关。类型’Headers‘中缺少属性'keys’。“
我很感谢你的支持。
发布于 2017-04-04 19:15:45
更新
到目前为止,@angular/http
已经是deprecated了,应该使用@angular/common/http
。因此,使用http头的最好方法是导入import { HttpHeaders } from '@angular/common/http';
(documentation)。
旧答案
您应该导入的Headers
类型是import { Headers } from '@angular/http';
。
检查您的导入
发布于 2018-01-22 14:49:27
您必须通过以下方式更新标头:
let headers = {headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};
发布于 2018-04-12 23:34:45
Angular 5的更新
import { RequestOptions } from '@angular/http';
我在正确答案的评论中发现了这一点,所以如果这对某人有帮助,祝你好运。
https://stackoverflow.com/questions/43205570
复制相似问题