将响应从http.post传递到angular2中的component.ts
我试图将typescript服务组件中http.post调用的响应传递给angular2组件,以便在前端显示它们。下面是我的service.ts和component.ts代码结构将响应从http.post传递到angular2中的component.ts,angular,typescript,Angular,Typescript,我试图将typescript服务组件中http.post调用的响应传递给angular2组件,以便在前端显示它们。下面是我的service.ts和component.ts代码结构 getSearchProfileResponse(body) { let headers = new Headers({'Content-Type': 'application/json'}); let options = new RequestOptions({headers: headers});
getSearchProfileResponse(body) {
let headers = new Headers({'Content-Type': 'application/json'});
let options = new RequestOptions({headers: headers});
return this.http.post(this._url, body, options)
.map((response:Response) => {
console.log(JSON.stringify(response));
JSON.stringify(response);
})
.catch((error) => {
console.log("error is "+ error);
return Observable.throw(error);
});
}
getProfile() {
this.spinnerService.show();
this.searchProfileRequest = _.cloneDeep(this.searchKey);
this.searchProfileService.getSearchProfileResponse(this.searchProfileRequest)
.subscribe(
searchProfileResponse => {
this.searchResult = searchProfileResponse;
console.log("response in component is "+ searchProfileResponse); // this is displayed as undefined
console.log("search result is "+ this.searchResult);
this.spinnerService.hide();
this.showProfiles(this.searchResult);
},
error => {
console.log(error);
this.spinnerService.hide();
this.showError();
}
);
}
我的问题是,我可以在getSearchProfileResponsebody方法的响应中看到来自控制器的数据。但是在getProfile方法的响应中,响应显示为未定义。感谢您的任何意见 您错过了从.map函数返回的功能
请尝试以下代码:
getSearchProfileResponse(body) {
let headers = new Headers({'Content-Type': 'application/json'});
let options = new RequestOptions({headers: headers});
return this.http.post(this._url, body, options)
.map((response:Response) => {
console.log(JSON.stringify(response));
return JSON.stringify(response);
})
.catch((error) => {
console.log("error is "+ error);
return Observable.throw(error);
});
}