关于angularJs的拦截器的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于angularJs的拦截器的使用相关的知识,希望对你有一定的参考价值。
拦截器,在javascript中就是拦截http请求.它不仅可以拦截request,还可以拦截response.
拦截request是为了在请求发送前设置一些配置,比如在header中添加一些信息.如果每个请求都要添加一些配置数据,就可以使用request拦截.拦截response是为了在获得服务器返回的数据后,ajax处理数据前先对数据做一些处理,这样就不需要在每一次ajax中处理了,减少代码量.
具体的看下面的例子:
angular.module(‘demo‘) //this service will let the page turn to login page when the user send post request if he is // not login .factory(‘errorInterceptor‘, [‘$q‘, ‘$location‘, function ($q, $location) { return { requestError: function (response) { // some code }
response: function (response) { // some code }
responseError: function (response) {
if (response && response.status === responseError) {
$location.path(‘/login‘); } return $q.reject(response);
}
request: function(req) {
// Set the `Authorization` header for every outgoing HTTP request
req.headers.Authorization =
userService.getAuthorization();
return req;
}
}; }])
在使用之前,我们需要在config中将我们写的拦截器加入到拦截器数组中
$httpProvider.interceptors.push(‘errorInterceptor‘);
以上是关于关于angularJs的拦截器的使用的主要内容,如果未能解决你的问题,请参考以下文章
使用 AngularJS 拦截器阻止 HTTP 基本身份验证对话框
angularjs拦截器:为啥在$http拦截器中没有收到正确的状态码和消息