Angular2-HTTP请求选项标头
我目前对tslint有意见,希望有人能给我指出正确的方向 我正在尝试使用Angular2框架提供的HTTP发送HTTP GET请求。对于这个请求,我必须指定内容类型和承载身份验证令牌 我的代码示例:Angular2-HTTP请求选项标头,angular,http,typescript,tslint,Angular,Http,Typescript,Tslint,我目前对tslint有意见,希望有人能给我指出正确的方向 我正在尝试使用Angular2框架提供的HTTP发送HTTP GET请求。对于这个请求,我必须指定内容类型和承载身份验证令牌 我的代码示例: let headers = new Headers(); let authToken = this._user.getUser().JWT; headers.append('Content-Type', 'application/json'); headers.append('Authorizati
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”的参数。属性类型为“Header”
不兼容。类型“Headers”不能分配给类型“Headers”。
存在两种具有此名称的不同类型,但它们不相关。
类型“Headers”中缺少属性“keys”。“
感谢您的支持。更新 从今天起,
@angular/http
已被禁用,应改用@angular/common/http
。因此,使用http头的最佳方法是从“@angular/common/http”导入import{HttpHeaders}代码>()
旧答案
您应该导入的Headers
类型是从'@angular/http'导入{Headers}代码>
检查您的导入您必须通过以下方式更新标题:
let headers = {headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};
角度5的更新
import { RequestOptions } from '@angular/http';
我在正确答案的评论中发现了这一点,所以如果这对某人有帮助,祝你好运
文档://内容类型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)));
就这样!我使用的是Phpstorm,它通常非常好,清楚地告诉我,我错过了一个依赖项,但这次没有。此外,我觉得tslint消息不是很清楚。干杯:)不管怎么说,有一个Headers类,即使你不导入它。因此,为了使Angular 5工作,您必须确保导入正确的一个(请参见上面的答案)代码>@Abhi它在文档中说Headers已被弃用,我们应该使用@angular/common/http中的HttpHeaders。但那真的不管用。。。想法?@Donkeybana我发现作为一个很好的参考,经济学家对选项和标题都使用const而不是let。这是不推荐的。是的,它看起来在过去几天有所改变。检查文档,现在是从'@angular/http'导入{RequestOptions}代码>