问题标签 [angular-httpclient-interceptors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
654 浏览

angular - 没有使用 angular6 调用 HTTP_INTERCEPTORS

我想在每个请求开始时实现加载器并在请求完成时隐藏加载器,我已经像这样实现了 HTTP_INTERCEPTORS

我已经像这样在app.module.ts中注册了 HTTP_INTERCEPTOR

但是当我进行 HTTP 调用时,拦截方法没有被调用,除此之外我还需要添加任何其他内容吗?我已经关注了这个博客,但我无法处理它

拦截方法正在启动,但是当做出响应或请求时,没有调用适当的方法。

例如

当我得到回复时,我想要

被执行

0 投票
1 回答
1680 浏览

angular - HttpClient拦截器重试单元测试(预期没有打开请求,发现1)

我有一个简单的 HttpClient 拦截器,它只是重试失败的请求一定次数。现在,我正在尝试为它编写单元测试,但不知何故我最终得到了一个未完成的请求。我已经尝试将测试包装fakeAsync或使用done,但它似乎没有帮助。现在我没有想法。

我得到的错误是: Error: Expected no open requests, found 1: GET mock/url

我错过了什么?

server-error.interceptor.ts

server-error.interceptor.spec.ts

0 投票
3 回答
1017 浏览

angular - 无法将路由器注入 HttpInterceptor (Angular 7)

我想将 Angular 路由器注入到我的 HttpInterceptor 中。不幸的是,浏览器控制台中抛出了以下错误:

类型错误:this.router 未定义

我像往常一样将它添加到我的构造函数中:

此外,我在 app.module.ts 中的 providers 数组中执行了以下操作:

我想在我的错误处理程序的 if 语句中使用当前 url 来为不同的路由提供特定的功能:

我究竟做错了什么?

0 投票
1 回答
265 浏览

angular - Angular - 有没有办法将服务实例化推迟到应用程序异步初始化?

我有一个带有 HTTP 拦截器的 Angular 5 应用程序,它在拦截请求时调用另一个服务。
我想使用配置文件使服务可配置,因此我尝试使用在应用程序初始化期间异步加载配置的服务(使用APP_INITIALIZER挂钩)。
问题是,我要使用的服务在配置服务完成从配置文件加载配置之前被实例化。

有没有办法将服务实例化推迟到配置服务完成加载配置之后?


代码

您可以在stackblitz中查看完整示例。
最相关的部分如下:

拦截器.service.ts

注入-dependency.service.ts

初始化器.service.ts

app.module.ts


结果

控制台输出

0 投票
1 回答
22 浏览

angular-http - 链二请求并返回一个对象Angular 7

我有一个搜索与用户输入搜索匹配的通知的请求,但是每个匹配的通知都有一个 newsId 属性,当我从服务器收到通知时,我希望再次请求从 newsId 属性和之后搜索新闻 obj返回带有通知 obj 和新闻 obj 的 obj

}

}

0 投票
2 回答
789 浏览

angular - 实施 CanDeactivate Guard 时出错

我目前正在尝试对我的 Angular 应用程序实施 CanDeactivate Guard,该应用程序已经具有 HTTP 拦截器来解析身份验证。但是添加 CanDeactivate 防护会引发错误,如下所述。

我已经在 AppModule 的 providers 数组中注册了实现 CanDeactivate 接口的类。我已经在路由的 canDeactivate 属性中注册了实现 CanDeactivate 接口的类。

实现 CanDeactivate 接口的类:

应用了 Deactivate 防护的组件:

该端点的路由定义:

Module 中的 Providers 数组:

错误

0 投票
0 回答
34 浏览

angular - rxjs超时操作符可以触发函数而不是返回错误并取消http调用吗

我正在实现一个角度拦截器服务,它会查找错误并显示一个快餐栏,现在我正在尝试添加功能来处理“无互联网”或“慢速互联网”。我尝试使用超时运算符,但在超时后,HTTP 调用被取消,但我的要求是通知用户他们的互联网速度很慢,然后可能会在一段时间后取消,所以我需要超时运算符来触发一个函数而不是触发一个错误

这是我的代码

0 投票
1 回答
316 浏览

javascript - 如何有条件地向 app.module 添加拦截器?

我阅读了其他主题,但没有一个能反映我的问题。背景优先——我们有一个 Angular 应用程序,它在两种模式下工作——在第一种模式下,应用程序使用一个 API,而在第二种模式下——另一个。

这个,我想要实现的是只有在第二种模式下才有 Http 拦截器。

那么,有没有办法根据一些 APP_CONFIG 文件或环境道具有条件地添加 Http 拦截器?

我创建了一种 setInterceptors() 辅助函数,它根据条件将这些拦截器添加到提供程序数组,但在构建过程中失败并带有消息:

装饰器不支持函数调用

0 投票
0 回答
206 浏览

asp.net-core - ionic httpclient 在带有 net core 0 Unknown Error 的模拟器上不起作用”

我收到此错误,离子服务在浏览器中工作正常,但是当我运行 ionic cordova emulate android 或 ios 没有按预期工作时,我尝试获取另一个 url 并且另一个 url 正在工作(公共 api)但是我的服务器没有,我在网上搜索,它看起来像是一个 cors 问题,但我找不到解决方案。

这是我在 ionic 中使用 Angular 提供的 httpclient 服务:

这是我用于配置 cors 选项的 net core 2.1 启动;

0 投票
0 回答
277 浏览

angular - 如何在 Method intercept() Http Interceptor 中使用 setTimeout

我使用 HttpInterceptor 设置“承载令牌”标题以登录 Angular,当我登录服务器时返回一个令牌并将其保存在 Response 变量中,但我需要一个 Request 变量,这就是我使用 Intercept 的原因。

导航器中令牌为 Null 的图像我使用 Google Chrome

令牌为 Null 的图像

好吧,当我打印变量时,我发现问题我在令牌不存在时设置令牌,

截取打印令牌时的图像

在此处输入图像描述

当我正确使用 setTimeout 打印令牌但我不知道如何在方法拦截中使用时,我尝试了不同的方法来使用此方法,但是当我尝试添加它时,我不知道如何在方法拦截()中使用 setTimeout

当我使用 setTimeout 打印令牌时的代码

在此处输入图像描述

如何在方法 intercept() 中使用 setTimeout 我尝试保存变量但设置数字(6、5 或 9)我不知道该怎么做。