使用以下http选项:
const httpOptions: any = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
}),
observe: 'response'
};
am将http帖子发送到json服务器端点,如下所示:
return this.http.post(`${this.baseUrl}/events`, myEvent, httpOptions);
订阅该帖子的代码如下:
this.api.saveEvent(this.event).subscribe(data => {
// Need to pick up the id from data (HttpResponse) here
});
我可以看到订阅中返回的data
类型为HttpResponse
-强制转换data
的正确方法是什么,这样我就可以使用的body
属性响应并选择json-server返回的id
属性?
更新:按照下面的评论,最终我得到了saveNewEvent
方法来返回Observable<HttpRespponse<Event>>
,但是,只有当我将http选项作为嵌入式匿名对象传递时,此方法才有效。在const中设置选项并在post方法中引用该const不起作用,而且我还没有弄清楚为什么。有什么想法吗?
答案 0 :(得分:0)
当您指定类型可以获取数据时,只需确保您的API正确返回它即可。
return this.http.post<{id: Number}>(`${this.baseUrl}/events`, myEvent, httpOptions);
this.api.saveEvent(this.event).subscribe(data => {
console.log(data.id);
});