Angular 使用httpClient返回数据时出现问题
嗨,我有一个简单的控制器,它返回一个简单的(我在这篇文章中简化了它): 很好,现在我从角度服务中称之为:Angular 使用httpClient返回数据时出现问题,angular,http,get,observable,Angular,Http,Get,Observable,嗨,我有一个简单的控制器,它返回一个简单的(我在这篇文章中简化了它): 很好,现在我从角度服务中称之为: getStuff(): Observable<IStuff> { return (this.httpClient .get<IStuff>(this.localUrl) .pipe( catchError(this.errorHandlerSerevice.handleError) ))
getStuff(): Observable<IStuff> {
return (this.httpClient
.get<IStuff>(this.localUrl)
.pipe(
catchError(this.errorHandlerSerevice.handleError)
)) as any;
}
一切都好…
控制台显示200和响应
但当我从我的组件订阅getStuff()时,我得到了[object object]或ude标识…
我尝试了几次订阅,但没有成功:
stuff: IStuff;
getStuff(){
this.stuffService.getStuff()
.subscribe(stuff => this.stuff = stuff);
}
Or:
getStuff(){
this.stuffService.getStuff()
.subscribe((data: IStuff) => this.stuff = {
Dummy: data['Dummy']
});
}
有什么想法吗 执行此操作时:
instance .subscribe(data => { this.stuff = data; alert(data); });
您正试图在警报框上打印数据
。但是由于数据
是一个JavaScript对象,因此您将看到[Object Object]
,因为警报将对其调用字符串
。如果您希望打印实际内容,则必须将其字符串化
试试这个:
alert(JSON.stringify(data));
这将打印实际响应。执行此操作时:
instance .subscribe(data => { this.stuff = data; alert(data); });
您正试图在警报框上打印数据
。但是由于数据
是一个JavaScript对象,因此您将看到[Object Object]
,因为警报将对其调用字符串
。如果您希望打印实际内容,则必须将其字符串化
试试这个:
alert(JSON.stringify(data));
这将打印实际响应。您在哪里得到的是
[object object]或已识别的?在控制台上?您将响应记录在何处?控制台按预期返回json对象。我在订阅绑定期间得到未定义的:stuff=>this.stuff=stuff,或者在单步执行代码并将鼠标悬停在数据['Dummy']上时。例如,如果我这样做。subscribe(data=>{this.stuff=data;alert(data);});我得到[Object Object]……这是因为警报将调用对象上的toString()
,这将导致[Object Object]
。如果你想要JSON格式,你需要调用JSON.stringify
yourself你从哪里得到[object object]或udentified
?在控制台上?您将响应记录在何处?控制台按预期返回json对象。我在订阅绑定期间得到未定义的:stuff=>this.stuff=stuff,或者在单步执行代码并将鼠标悬停在数据['Dummy']上时。例如,如果我这样做。subscribe(data=>{this.stuff=data;alert(data);});我得到[Object Object]……这是因为警报将调用对象上的toString()
,这将导致[Object Object]
。如果需要JSON格式,您需要自己调用JSON.stringify