繁体   English   中英

是否可以使用Angular中的一个拦截器来修改HTTP的请求和响应?

[英]Is it possible to use one interceptor in Angular to modify HTTP requests and responses?

我通过一个在线课程学习了 Angular,在该课程中,讲师似乎使用了一个拦截器来修改传出请求的 header,并捕获响应数据(或者,这就是我认为正在发生的事情。)下面是截取的屏幕截图当然 - 请忽略评论,这些评论仅供我个人参考。

在此处输入图像描述

这样的事情可能吗? 或者,是否需要单独的拦截器来修改传出请求和操纵传入响应?

我在网上进行了研究,但找不到将拦截器用于这两个目的的实例。

您可以在单个拦截器中组合传出和传入请求的处理(完全如图所示)。 可以在next.handle(modifiedRequest)上定义的pipe中处理传入响应。

有多个可用的rxjs运算符可以传递给 pipe(取决于您的需要)。 对于实际操作传入响应,您只需将map运算符( https://www.learnrxjs.io/learn-rxjs/operators/transformation/map )传递给 pipe。在您的情况下, taphttps://www. learnrxjs.io/learn-rxjs/operators/utility/do )用于执行副作用(如记录响应)。

问题是您是否应该使用单个拦截器来执行这两项任务。 如果请求和响应操作相互关联,那么我的回答可能是肯定的。 如果它们处理完全不同的用例,我建议您将它们拆分为单独的拦截器,以便更好地构建您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM