$http服务允许我们通过发送 HTTP 请求方式与后台进行通信。在某些情况下,我们希望可以俘获所有的请求,并且在将其发送到服务端之前进行操作。还有一些情况是,我们希望俘获响应,并且在完 成完成调用之前处理它。这时候,就需要用拦截器了。
一:什么是拦截器:
$httpProvider中有一个interceptors数组,而所谓的拦截器是一个factory,然后将其注册到这个数组中来。
二:拦截器的四个操作
1、 请求的拦截:request
这个方法的调用在$http请求之前,所以在此之前我们可以修改配置和进行其他操作。
2、 拦截响应:response
当$http服务收到后台给出响应的时候,这个方法被调用。所以我们可以修改请求响应。这个方法接受一个响应对象作为参数。响应对象包含请求配置、标题、状态以及从后台返回的数据。如果返回的是一个无效的对象或者是promise,这个是不会调用的。
3、 拦截请求错误:requestError
4、 拦截响应错误:responseError
三:一个使用例子(计算发出请求到接收到所用的时间)
1:创建拦截器
创建拦截器request是在发出http请求之前操作的。而response则是在请求完返回response后操作的。
2:注册拦截器
注册拦截器这一步就是把刚才创建的拦截器注入到$httpProvider中的interceptors数组中来。
3:发出get请求,触发拦截器(controller里面)
触发拦截器这就是我学习过程中写的一个拦截器的例子。记录下来,加深记忆。
网友评论