angularjs 拦截器

$http服务允许我们通过发送 HTTP 请求方式与后台进行通信。在某些情况下,我们希望可以俘获所有的请求,并且在将其发送到服务端之前进行操作。还有一些情况是,我们希望俘获响应,并且在完 成完成调用之前处理它。这时候,就需要用拦截器了。

一:什么是拦截器:

$httpProvider中有一个interceptors数组,而所谓的拦截器是一个factory,然后将其注册到这个数组中来。

二:拦截器的四个操作

1、 请求的拦截:request

这个方法的调用在$http请求之前,所以在此之前我们可以修改配置和进行其他操作。

2、 拦截响应:response

当$http服务收到后台给出响应的时候,这个方法被调用。所以我们可以修改请求响应。这个方法接受一个响应对象作为参数。响应对象包含请求配置、标题、状态以及从后台返回的数据。如果返回的是一个无效的对象或者是promise,这个是不会调用的。

3、 拦截请求错误:requestError

4、 拦截响应错误:responseError

三:一个使用例子(计算发出请求到接收到所用的时间)

1:创建拦截器

angularjs 拦截器_第1张图片
创建拦截器

request是在发出http请求之前操作的。而response则是在请求完返回response后操作的。

2:注册拦截器

angularjs 拦截器_第2张图片
注册拦截器

这一步就是把刚才创建的拦截器注入到$httpProvider中的interceptors数组中来。

3:发出get请求,触发拦截器(controller里面)

angularjs 拦截器_第3张图片
触发拦截器

这就是我学习过程中写的一个拦截器的例子。记录下来,加深记忆。

你可能感兴趣的:(angularjs 拦截器)