angular - HttpResponse“TypeError:无法读取未定义的属性‘消息’”
问题描述
我需要从 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)
这些相同的方法在另一个项目中完美地工作,但不是在这里。
解决方案
添加observe: 'response'
对象以status
从响应中访问。
deleteBranchByID(branchID: string) {
return this.http.delete(this.baseUrl + 'api/Branch/DeleteBranchByID/' + branchID, { observe: 'response' });
}
我认为你可能会得到一个200
状态码,但响应是空的,因此 http 调用失败,但这只是一个猜测。
查看此内容以了解如何从响应中获取标头、状态代码等,而不仅仅是从正文中获取。
推荐阅读
- android - 如何在 Android kotlin 中定义 EditText 的最小值和最大值?
- reactjs - ReactJS - 当我的鼠标进入 div 元素(onMouseEnter)时如何添加 removeEventListener
- json - 需要使用 Pyspark 关联嵌套的 JSON 字符串
- mysql - sql查询可以隐藏数据
- c++ - 创建函数以选择选项
- go - 在 Mac 上的 golang 中使用 AF_ROUTE 添加路由
- perl - 如何在文件中搜索最后一次出现的字符串并在perl中获取下一行
- python - 按间隔拆分行 Pandas
- testing - 如果至少有 1 次成功执行,如何配置 TestCafe 隔离模式以通过?
- ios - 单元格中的按钮后索引超出范围错误有效吗?