我在做项目的时候,使用拦截器,通过查阅资料总结拦截器的相关内容:
1、拦截器的由来:$httpAngularJS的$http服务允许通过HTTP请求方式与后台进行通信。在一些情况下需要俘获所有的请求,并在其发送到服务端之前进行操作。还有一些情况是俘获响应,并且在完成调用前处理它。
2、$httpProvider中有一个intercetors数组,而所谓拦截器只是一个简单的注册到该数组中的常规服务工厂。
如果返回无效的配置对象或者 promise 则会被拒绝,导致
$http
调用失败。
4、response方法拦截响应:该方法会在$http接收响应后执行,该方法接收响应对象(response object)作为参数,然后必须返回响应对象或者promise。
响应对象包括了请求配置(
request configuration
),头(
headers
),状态(
status
)和从后台过来的数据(data)。如果返回无效的响应对象或者 promise 会被拒绝,导致
$http
调用失败。
5、
requestError
: 有时候一个请求发送失败或者被拦截器拒绝了。请求异常拦截器会俘获那些被上一个请求拦截器中断的请求。它可以用来恢复请求或者有时可以用来撤销请求之前所做的配置,比如说关闭进度条,激活按钮和输入框什么之类的。
6、
responseError
: 有时候我们后台调用失败了。也有可能它被一个请求拦截器拒绝了,或者被上一个响应拦截器中断了。在这种情况下,响应异常拦截器可以帮助我们恢复后台调用。