[英]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.