Angular中订阅POST请求错误:如何获取并记录响应状态码
如何在Angular HTTP POST请求的错误回调中获取响应状态码?
没问题,我来帮你搞定这个!在Angular的HttpClient抛出的错误回调里,你拿到的error对象其实是HttpErrorResponse类型,它自带了所有你需要的HTTP响应信息,包括状态码。
直接修改你的代码就行,像这样:
this.http.post(this.url, formData, options) .subscribe( (data) => { console.log('success'); this.getData(); }, (error) => { // 获取并打印HTTP错误状态码 console.log('错误状态码:', error.status); // 额外:还能拿到状态描述文本,比如"Not Found"或者"Internal Server Error" console.log('状态文本:', error.statusText); // 如果后端返回了自定义错误内容,用error.error就能拿到 console.log('服务器返回的错误详情:', error.error); } );
补充说明:
- 如果是网络层面的错误(比如断网、请求根本没发出去),
error.status会是0,这时候可以针对性处理; error.error的格式取决于后端返回的内容,可能是JSON对象、纯字符串或者其他格式,你可以根据实际情况解析;- 如果你用的是TypeScript,最好给error加上类型注解
(error: HttpErrorResponse),这样编辑器会给你更友好的代码提示。
内容的提问来源于stack exchange,提问作者Qwe Rty
相关产品推荐
相关产品推荐

