好久没登录CDSN的账号,居然有人给我点赞,还有人关注我了,哈哈,无名之辈的开心就是这么简单,谢谢(๑╹◡╹)ノ"""
什么是拦截器
回归今天的主题, 我建议大家主要是去看官方文档的拦截请求和响应,跳到顶部,可以下载官方例子源码的。
拦截器就是在发送请求给服务器之前,拦截请求,隐式进行处理。
也可以在接受服务器的响应之后,拦截响应,隐式进行处理。
简单的应用就像官方说的,记日志,缓存等等,我也用其实现了在请求数据时,改变光标的类型的一个小功能。
使用拦截器
- 自定义的拦截器CachingInterceptor继承接口HttpInterceptor,实现其中的方法intercept
- 拦截请求
intercept(req: HttpRequest<any>, next: HttpHandler):
Observable<HttpEvent<any>> {
// 在发送请求给服务器之前,拦截请求的处理
// 强调下虽然拦截器有能力改变请求和响应,但 HttpRequest 和 HttpResponse 实例的属性却是只读
// 此让它们基本上是不可变的。
//要想修改该请求,就要先克隆它,并修改这个克隆体,然后再把这个克隆体传给 next.handle()。
const secureReq = req.clone({
url: req.url.replace