首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何“禁用”特定呼叫的拦截

如何“禁用”特定呼叫的拦截
EN

Stack Overflow用户
提问于 2020-01-22 11:06:38
回答 2查看 226关注 0票数 0

我有一个很大的应用程序,到现在为止,它只有一个http服务器来发出请求。

在app.module中,我有以下拦截器:

代码语言:javascript
代码运行次数:0
运行
复制
  providers: [
    {
      provide: LocationStrategy,
      useClass: HashLocationStrategy
    },
    {
      provide: HTTP_INTERCEPTORS,
      useClass: JwtInterceptor,
      multi: true
    },
    {
      provide: HTTP_INTERCEPTORS,
      useClass: ErrorInterceptor,
      multi: true
    }],

问题是,我需要添加一个从外部服务到端点的API调用,我希望我可以抵制这个拦截器,只针对这个API调用。

代码语言:javascript
代码运行次数:0
运行
复制
getAllCesiumModels(params?: apiModels.GetAllCesiumRequest): Observable<apiModels.GetAllModelsResponse>  {
  return this.httpClient.get<any>(`https://api.cesium.com/v1/assets`, {headers: { Authorization: `Bearer ${params.accessToken}` }});
}

有没有一种方法,在不更改所有应用程序的情况下,使这个get请求不跳过拦截器?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-01-22 11:15:16

我不确定这是否有效,但你可以试一试。

代码语言:javascript
代码运行次数:0
运行
复制
export class JwtInterceptor implements HttpInterceptor {
  public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
     return next.handle(request).pipe(
            catchError((err) => {
                if(request.url.indexOf("your web app url")==-1)
                {
                  return EMPTY;
                }
            })
        )
   }
}
票数 1
EN

Stack Overflow用户

发布于 2020-01-22 12:22:56

在服务级

代码语言:javascript
代码运行次数:0
运行
复制
bypassedClient: HttpClient

constructor(
   private handler: HttpBackend
) {
   this.bypassedClient = new HttpClient(handler);
}

makeCall(){
this.bypassedClient.post(this.apiURL + Constant.API.authenticate, params)
.subscribe((res)=> console.log(res))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59852053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档