繁体   English   中英

如何从 http.post 获取响应数据

[英]How to get the response data from http.post

我正在使用 Angular typescript 并尝试从 HTTP.post 响应中获取数据。 这是我的代码:

this.http.post(
      link,
      postData,
      {responseType: 'json'}) //see remark below.
      .subscribe(responseData => {
        console.log(" Success from http post ");
        postResponse = responseData;         
        
        var temp: number = 0;        
        //temp = responseData[0].id;
      }, 
      (error: any) => {
          console.log(" Error from http post"+error)
      });

响应成功。 响应采用类/json 内容数组的形式,包含以下成员 - id、strMatrix 和 retCode。 在附图中,您可以看到代码和调试器。 “观察”调试器中的 responseData[0].id 显示值“1”,但行 temp = responseData[0].id; 不通过编译。 关于如何提取所有字段的任何想法? 我做了一些工作,现在我可以使用以下命令访问变量:

let temp = <PostResult[]>responseData;
myResult.Id = temp[0].id;

myResult 在以下行中方法的开头定义:

var myResult : ResultsComponent = new ResultsComponent;

现在我的问题是在 post 命令中,数据存在。 在 post 命令之外,即在行之后:

      (error: any) => {
          console.log(" Error from http post"+error)
      });

数据不复存在。 我究竟做错了什么?

在此处输入图像描述

您不使用var在 Angular 中定义 class 属性。 这是正确的方法:

// Declare a class property

matrixResponse: PostResult[];

constructor(){}

// Make your request
this.http.post(
      link,
      postData,
      {responseType: 'json'})
      .subscribe(responseData => {    
        this.matrixResponse = responseData;         
      }, 
      (error: any) => {
          console.log(" Error from http post"+error)
      });

我不明白你想用这个做什么: var myResult: ResultsComponent = new ResultsComponent;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM