角度HTTP请求返回406

时间:2019-11-14 11:01:57

标签: angular interceptor angular-httpclient

我有一个用于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。但是我得到的错误是=“确定”。根据我的代码,我得到了“不可接受”。有任何想法吗?

谢谢

这是它的样子: enter image description here

更新。这是使用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

1 个答案:

答案 0 :(得分:0)

如果错误以字符串形式返回,则http响应状态将为成功状态(2XX),该代码将不起作用,但是需要使用rxjs的tap函数对响应部分进行检查,但是如果并非如此,下面的代码将为您工作:

$Left