首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >超文本传输协议RequestOptions标头

超文本传输协议RequestOptions标头
EN

Stack Overflow用户
提问于 2017-04-04 19:11:56
回答 4查看 79.1K关注 0票数 73

我目前对tslint有一个问题,希望有人能给我指出正确的方向。

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

我的代码示例:

代码语言:javascript
复制
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’。“

我很感谢你的支持。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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';

检查您的导入

票数 201
EN

Stack Overflow用户

发布于 2018-01-22 14:49:27

您必须通过以下方式更新标头:

代码语言:javascript
复制
let headers =  {headers: new  HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded'})};
票数 9
EN

Stack Overflow用户

发布于 2018-04-12 23:34:45

Angular 5的更新

代码语言:javascript
复制
import { RequestOptions } from '@angular/http';

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43205570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档