首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型记录Angular2 -抱怨缺少类型

类型记录Angular2 -抱怨缺少类型
EN

Stack Overflow用户
提问于 2016-03-21 05:13:53
回答 3查看 607关注 0票数 0

我有以下代码:

代码语言:javascript
运行
复制
  var headers = new Headers();
                            // headers.append('Content-Type', 'application/json');
                            headers.append('Content-Type', 'application/x-www-form-urlencoded');
                            this.http.post(
                                'http://192.168.1.45:3000/testrestapi',
                                {headers: headers}
                            ).map((res => res.json())
        .subscribe(data => {
          // we've got back the raw data, now generate the core schedule data
          // and save the data for later reference
          this.data = data;
      console.log('Friends Provider was a success!');
      console.log(JSON.stringify(data));
          resolve(this.data);
        },
    (err)=>{
        console.log('Error in Friends Provider!');
    },
    ()=>{
           console.log('Friends Provider network call has ended!');
    }
        )

       )
   });

代码编译得很好,没有错误,但我在ide中得到了以下错误:

我正在跟踪这个文档:https://angular.io/docs/js/latest/api/http/Http-class.html。它展示了如何将HTTP用于GET,而不是POST。我似乎错过了标题的类型,我也不知道在这里放什么,它抱怨订阅方法的类型,再次我不确定在这里放什么,因为我在跟踪文档,它似乎没有什么不同?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-21 08:36:36

您已经在代码的第2行和第3行中导入了2次Http模块,其中一条是多余的。

http post的API为:

代码语言:javascript
运行
复制
post(url: string, body: string, options?: RequestOptionsArgs) : Observable<Response>

https://angular.io/api/http/Http

它期望有一个JSON.stringified主体作为第二个参数,但是您正在推送头选项,这应该是第三个参数。

我还建议用

代码语言:javascript
运行
复制
headers.set('Content-Type', 'application/json'); 

而不是append

此外,在订阅数据之后,您也缺少了偏执。

代码语言:javascript
运行
复制
.subscribe(
    (data) => {
        console.log('Do something with data here \n',data);
    }
);
票数 1
EN

Stack Overflow用户

发布于 2016-03-21 05:19:58

代码语言:javascript
运行
复制
 var headers = new Headers();
                            // headers.append('Content-Type', 'application/json');
       headers.append('Content-Type', 'application/x-www-form-urlencoded');
       this.http.post(
                       'http://192.168.1.45:3000/testrestapi',
                                {headers: headers}
                      )
        .map((res => res.json())
        .subscribe(data => 
         {

          this.data = data;
          console.log('Friends Provider was a success!');
          console.log(JSON.stringify(data));
          //resolve(this.data);
          },
        (err)=>{
        console.log('Error in Friends Provider!');
        },
        ()=>{
           console.log('Friends Provider network call has ended!');
        }

       );
票数 0
EN

Stack Overflow用户

发布于 2016-03-21 05:20:08

代码编译的很好,没有错误,

仅仅因为您获得了有效的JavaScript,并不意味着它编译时没有错误。这实际上是一个TypeScript特性(参见为什么打字本)。

您在错误中看到的错误是编译器错误。

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

https://stackoverflow.com/questions/36123585

复制
相关文章

相似问题

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