Angular 处理httpinterceptor中的.net核心API异常
我正在从.Net Core API中的方法抛出新的异常(“消息”),并在startup.cs中包含以下代码Angular 处理httpinterceptor中的.net核心API异常,angular,.net-core,asp.net-core-webapi,Angular,.net Core,Asp.net Core Webapi,我正在从.Net Core API中的方法抛出新的异常(“消息”),并在startup.cs中包含以下代码 ''''app.UseExceptionHandler(a => a.Run(async context => { var exceptionHandlerPathFeature = context.Features.Get<IExceptionHandlerPathFeature>(); var e
''''app.UseExceptionHandler(a => a.Run(async context =>
{
var exceptionHandlerPathFeature = context.Features.Get<IExceptionHandlerPathFeature>();
var exception = exceptionHandlerPathFeature.Error;
var result = JsonConvert.SerializeObject(new { error = exception.Message,
StatusCode = (int?)HttpStatusCode.BadRequest });
context.Response.ContentType = "application/json";
await context.Response.WriteAsync(result);
}));''''
现在我尝试使用拦截器在Angular中处理这个问题,但是在开发者工具中扩展时“err”没有上面的json错误响应,即使当我声明(err:HttpErrorResponse)时,它甚至没有进入其中
''''export class ErrorInterceptor implements HttpInterceptor {
constructor(private authenticationService: AuthenticationService) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req)
.pipe(catchError((err: HttpErrorResponse) => {
console.log ('error is:', err.error);
return Observable.throw(err.error);
}));
} ''''
我做错了什么?我是否没有处理异常或从API正确传递异常
''''export class ErrorInterceptor implements HttpInterceptor {
constructor(private authenticationService: AuthenticationService) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req)
.pipe(catchError((err: HttpErrorResponse) => {
console.log ('error is:', err.error);
return Observable.throw(err.error);
}));
} ''''
HttpErrorResponse
error: ProgressEvent {isTrusted: true, lengthComputable: false, loaded: 0, total: 0, type: "error", …}
headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, headers: Map(0)}
message: "Http failure response for (unknown url): 0 Unknown Error"
name: "HttpErrorResponse"
ok: false
status: 0
statusText: "Unknown Error"
url: null
__proto__: HttpResponseBase