angular - 如何使用 Angular 5 识别来自 HTTP 拦截器的特定请求?
问题描述
我在 Angular 5 中使用 HTTPInterceptor 功能。它在克隆 http-request 并发送到服务器(后端服务器)时按预期工作。我仅从 HTTPInterceptor 显示和隐藏应用程序加载器,这也可以正常工作,但我对一个 GET 请求使用轮询,该请求每 5 秒从后端服务器获取数据,这让用户很恼火。那么,有什么方法可以检查 HTTPInterceptor 中的特定请求吗?并且也不允许在该请求上显示/隐藏加载程序。
以下是拦截函数的当前代码片段:
intercept (req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.loadingIndicatorService.showLoader();
this.customAuthorizationHeader();
const apiRequest = req.clone({headers:this.headers});
return next.handle(apiRequest).do
((response) => {
if (response instanceof HttpResponse) {
this.loadingIndicatorService.hideLoader();
}
},
(error) => {
this.loadingIndicatorService.hideLoader();
});
};
提前致谢。
解决方案
您可以检查是否req.url
等于您要排除的路径,如下所示:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
// put this before your current code
if (req.url.indexOf('/* the api path you want to exclude*/') === -1) {
return next.handle(req);
}
// do your stuff here.
return next.handle(req);
}
推荐阅读
- python - 使用 bs4 lib 解析 JS 页面时获取“无”
- css - 如何将点击链接添加到嵌入式 vimeo 视频?
- javascript - 导出/导入 javascript 模块
- xamarin - 如何在框架 Xamarin.Forms 中显示分组和分组项目
- python - ArangoDB get_or_create 文档的最佳方法
- javascript - 将道具传递给不带引号的组件
- asp.net-core - Razor Pages ASP.NET Core 3.1 - 如何动态创建多个单选按钮组
- asp.net-core - 根据验证程序,远程证书无效 - NET Core WebAPI
- laravel - 函数 App\Awe\JsonUtility::addNewProduct() 的参数太少,
- spring-boot - 对于具有 camunda-bpm-spring-boot-starter-rest hibernate 属性的项目会影响指标,输出无法正常工作(仅部分)