我需要从 http 响应中访问“状态”、“消息”等。在 chrome 浏览器的“网络”选项卡中,我确实看到了我需要的一切。但是在“订阅”方法中,返回的错误没有定义这些属性。
deleteBranchByID(branchID: string) {
return this.http.delete(this.baseUrl + 'api/Branch/DeleteBranchByID/' + branchID);
}
“错误”不包含我需要的属性...
onDelete(branchID) {
this.branchesService.deleteBranchByID(branchID)
.subscribe(
(res) => {
console.log(res);
},
(error) => {
console.log(error);
}
);
}
...相反,console.log(error) 返回这个:
TypeError: Cannot read property 'message' of undefined
at CatchSubscriber.selector (common-auth.js:945)
at CatchSubscriber.error (catchError.js:29)
at CatchSubscriber.notifyError (OuterSubscriber.js:7)
at InnerSubscriber._error (InnerSubscriber.js:14)
at InnerSubscriber.error (Subscriber.js:55)
at Observable._Observable__WEBPACK_IMPORTED_MODULE_0__.Observable.scheduler.schedule.error.error [as _subscribe] (throwError.js:4)
at Observable._trySubscribe (Observable.js:42)
at Observable.subscribe (Observable.js:28)
at subscribeTo.js:20
at subscribeToResult (subscribeToResult.js:7)
这些相同的方法在另一个项目中非常有效,但在这里不行。
答案 0 :(得分:0)
添加 observe: 'response'
对象以从响应中访问 status
。
deleteBranchByID(branchID: string) {
return this.http.delete(this.baseUrl + 'api/Branch/DeleteBranchByID/' + branchID, { observe: 'response' });
}
我认为您可能会收到 200
状态代码,但响应为空,因此 http 调用失败,但这只是猜测。
查看 this 以了解如何从响应中获取标题、状态代码等,而不仅仅是正文。