繁体   English   中英

从Angular 5 HttpClient中的自定义帖子响应中提取值

[英]Extract values from custom post response in Angular 5 HttpClient

我有一个Rest服务,它以JSON格式发送回数据,如下所示:

{result:"success",message:"token"}

用于获得上述响应的HttpClient Post函数

getAuthResponse(username: string, password: string): Observable<Callback> {
    return this.http.post<Callback>('https://rest-service-url/Prod/authenticate', {
      'operation': 'AuthUser',
      'data': {
        'username': username,
        'password': password
      }
    });
  }

回调类

export class Callback {
  constructor(
    public result: string,
    public message: string
  ) {}
}

我的getAuthResponse返回自定义类型回调的Observable。

现在,我试图在下面的其他服务之一中提取消息。

this.dataservice.getAuthResponse(username, password).subscribe(
      res => {
        const callback = <Callback>res;
        console.log(callback.message);
      }
    );

我可以打印res,并且看到JSON格式的响应,如下所示

{result:"success",message:"some message"}

但是,当我尝试打印callback.message时,我无法定义。

我读到在新的HttpClient模块中,http.post将自动将响应映射到指定的类型。 是真的,还是我们需要将其显式映射到回调类(在mycase中)?

您能帮我从“我的帖子”回复中提取消息值吗?

我找到了解决方法。 问题出在我的休息服务发布的自定义响应中。 我在rest服务中将响应数据格式化为json,并且能够提取值而没有任何问题。

编辑最初,我的Node.js Rest Service中的回叫代码是

callback('{"result":"success","message": "' + jwtToken + '"}');

我如下更改

var callbackMsg = {
                        'result': 'success',
                        'message': jwtToken
                    };
                    callback(callbackMsg);

暂无
暂无

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

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