我有一个用于HTTP请求的简单代码:
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// add authorization header with jwt token if available
request = this.addTokenToRequest(request);
return next.handle(request)
.pipe(
catchError(error => {
switch (error) {
case 'Not Acceptable': {
return this.handle406Error(request, next);
break;
}
case 'Unauthorized': {
// return this.handle401Error(request, next);
break;
}
}
}));
}
由于有意使用过期的令牌,因此我将返回406。但是我得到的错误是=“确定”。根据我的代码,我得到了“不可接受”。有任何想法吗?
谢谢
更新。这是使用AngularJS前端从同一应用返回响应对象时的样子:
config: {method: "GET", transformRequest: Array(1), transformResponse:
Array(1), jsonpCallbackParam: "callback", paramSerializer: ƒ, …}
data: "Unauthenticated Token."
headers: ƒ (d)
status: 406
statusText: "Not Acceptable"
xhrStatus: "complete
答案 0 :(得分:0)
如果错误以字符串形式返回,则http响应状态将为成功状态(2XX),该代码将不起作用,但是需要使用rxjs的tap函数对响应部分进行检查,但是如果并非如此,下面的代码将为您工作:
$Left