gpt4 book ai didi

json - Angular 6 错误处理 - HttpErrorResponse 具有未定义状态

转载 作者:太空狗 更新时间:2023-10-29 17:46:00 25 4
gpt4 key购买 nike

我有一个 Angular 6 客户端使用使用 .Net Web Api 开发的 REST Api。

除错误处理外,一切正常。当我尝试处理错误以对不同的状态代码(404、403、409、500 ...)做出不同的 react 时,我根本无法让它工作。 HttpErrorResponse 对象没有任何应有的字段(如“状态”或“错误”)。

我做了一个重现问题的 super 简单的服务:

请求服务.ts

 public test(): Observable<any> {
let url = this.templatesUrl + '/myMethod';
console.log('GET myMethod ' + url);

return this.http.get<any>(url)
.pipe(catchError(this.handleError));
}

错误处理程序(几乎直接来自官方文档):

 private handleError(error: HttpErrorResponse) {
console.warn(error);

if (error.error instanceof ErrorEvent) {
// A client-side or network error occurred. Handle it accordingly.
console.error('An error occurred:', error.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.error(
`Backend returned code ${error.status}, ` +
`body was: ${error.message}`);
}
// return an observable with a user-facing error message
return throwError('Unexpected error');
}

.Net 端的服务:

[HttpGet]
[Route("myMethod")]
public IHttpActionResult myDotNetMethod()
{
return InternalServerError(new Exception("Details about the issue"));
}

服务被调用并返回一个状态码 500 和一个 json 对象:

响应状态:

Chrome showing the request

响应头,json格式:

Response header, it is json

json 对象:

The json object returned

日志显示的内容:没有状态,几乎是一个空对象:

What the log shows, no status and pretty much an empty object

看起来 HttpErrorResponse 几乎是空的。但是 API 的响应很好,状态代码和 json 对象都在那里。

我错过了什么?

更新:如果您想知道日志中显示的“内部服务器错误”背后隐藏着什么(它只是 chrome 生成的调用堆栈):

enter image description here

更新 2: 这是显微镜下的错误对象。它只是“内部服务器错误”。没有状态或消息的痕迹。

enter image description here

最佳答案

已解决...由于拦截器,对象为空。因此,如果类似的事情发生在您身上,请检查一下。

很抱歉浪费了大家的时间,我不知道那个特定拦截器的存在。

关于json - Angular 6 错误处理 - HttpErrorResponse 具有未定义状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54463898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com