问题标签 [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.
angular - 拦截器没有拦截,尽管只有一个 HttpClientModule
我在 Angular 中有应用程序,我只有一个 HttpClientModule,但是当我在构造函数中提供 HttpClient 时,如下所示:
但在另一个模块中我也有类似的构造函数
我的 app.module
表格模块内容
主应用模块
我究竟做错了什么?
angular - 在 Angular HTTP 拦截器中对拦截函数进行单元测试
我编写了一个 Angular 9 HTTP 拦截器,我想在相对隔离的情况下对拦截功能进行单元测试。从我已经在StackOverflow上看到的情况来看,人们建议发出虚假 HTTP 请求或返回基本请求,因为我使用 .pipe 方法(TypeError: next.handle(...).管道不是函数)
这是我的拦截功能,请问您建议对该功能进行单元测试吗?
angular - Angular 中状态为 302 时读取响应头
我如何在 Angular (v8+) 中读取XHR
调用的响应标头,$http
因为它的状态是 302 并且它是由浏览器重定向的?在我的情况下,由于重定向 url 有不同的来源,我只从下面的代码中得到一个未知错误:
angular - 测试 HttpInterceptor Angular 10 时出错
我正在开发一个 Angular 10 应用程序,该应用程序使用HttpInterceptor
向所有响应添加特定标头。不幸的是,在尝试测试此拦截器时,我不断收到以下错误:
或类似的变体:
我的期望是这个测试会通过,但我现在不知道为什么它不工作。
这是我的拦截器:
这是我的测试:
也就是说,可能值得指出的是,我尝试应用以下资源中的解决方案无济于事(大多数似乎与我已经拥有的类似,而且许多似乎适用于旧版本的 Angular):
- 来自 Angular 4 的单元测试 HttpInterceptor:在这里,我发现了一篇有用的文章,它几乎完全符合我的需要,但它实际上不适用于我的情况(我遇到了上述错误)。我说的几乎完全是因为我用来获取令牌的服务实际上并没有
HttpClient
根据我的判断来使用。 - 这与我的问题不完全一样,但足够相似,可以尝试一下。我尝试使用教科书描述的解决方法,但显然这与我遇到的问题还不够接近。
- 我还尝试在我的测试中使用导致上述错误被消除
spyOn
的函数,http.get(...)
但是当我这样做时它没有调用我的intercept
函数。
非常感谢任何帮助 - 谢谢!
angular - 如何使用spring boot为rest api创建用户界面
我使用 springBoot 创建了一个 Rest API,并使用 Postman 创建 GET、POST、PUT、Delete 请求。为了向最终用户显示数据,我正在使用 Angular 。我的应用程序对 enduser 是只读的,因此我只从我的 Angular 代码中调用 Get Requests 。
我需要为管理员创建用户友好的界面,以使用表单和合适的选项输入数据。
我应该为管理员创建另一个角度应用程序,还是也可以使用 springboot,
我还想知道我是否能够在相同的 url 上使用我的客户端和管理应用程序,或者我必须购买 2 个 url,一个用于客户端,一个用于管理员。
angular - Angular 11 - 订阅不返回响应类型文本的正确数据
我有一个奇怪的问题。我希望我能解释一下。
我在后端加密了一些东西,API 响应返回一个加密格式的纯字符串,如下所示:
现在,在 Angular 客户端中,我有将上述代码转换为 JSON 响应的解密逻辑,我需要在 UI 中显示该响应。
由于我需要过滤特定的 APIS 进行解密,因此我正在修改拦截器中的响应,如下所示:
但是我用于 HTTP 调用的服务是这样的:
到目前为止一切都很好,但是一旦我修改了代码,并且一个组件订阅了它,我在控制台中收到错误:
我认为问题在于 HTTP 响应类型是导致订阅失败的文本,而它获取的解密内容是 JSON。
如果我将 getWithText() 响应更改为 JSON,则拦截器 HTTP 调用本身将失败,因为响应类型是加密字符串。
我该如何解决这个问题?有什么办法,我可以通过接受 JSON 响应来使我的订阅代码工作。提前致谢。
angular - 如何在 Interceptors Angular 中调用 API 服务
我正在尝试在拦截器中调用 API 服务。
我的 API 服务代码:
我的拦截器代码:
如果我在 Interceptor 内调用 API,它会多次命中。