我对POST请求使用附加选项:
return this.http.post("", data, { observe: "response" });
当我尝试在拦截器中处理此响应时,我无法获得http状态:
return next.handle(request).pipe(
map((event: any) => {
console.log(event.status);
return event;
});
答案 0 :(得分:1)
在管道内部使用catchError,如下所示:
.pipe(
catchError(err => { // catch response error from server
if (err instanceof HttpErrorResponse) {
switch ((<HttpErrorResponse>err).status) {
case 401: // if is 401 error
}
}
})
);
答案 1 :(得分:1)
您实际上不需要观察响应。您可以删除{观察:“响应”}。 在拦截器中处理它所需要做的就是将catchError添加到管道中。为了逃避错误(如果您希望请求成功完成),您应该在catchError中返回Observable。 您也可以通知用户或对某些错误执行某些操作,例如上面显示的Klodian。
localhost