0
如何让$ http拦截器只对给定模式做出反应?例如,我希望拦截器处理每个“/ api/*”请求并将其他请求单独留下。AngularJS具有选择性URL的http拦截器
如何让$ http拦截器只对给定模式做出反应?例如,我希望拦截器处理每个“/ api/*”请求并将其他请求单独留下。AngularJS具有选择性URL的http拦截器
您可以在请求或响应中筛选成功的URL或拒绝函数。
假设您需要处理以“数学/”开头的网址请求和响应的错误。
这里是你的拦截器。
$httpProvider.interceptors.push(function($q, mathError) {
return {
requestError: function(rejection){
mathError.anyError(rejection);
return $q.reject(rejection);
},
responseError: function(rejection){
mathError.anyError(rejection);
return $q.reject(rejection);
}
};
});
这里是你的工厂,你处理它
myApp.factory('mathError', function(){
return {
anyError: function(rejection){
if (rejection.config.url.substr(0, 5) === "math/") {
console.log("Only Math errors are handled here");
//Do whatever you need here
}
}
});
你可以有选择地应用的拦截,所以拦截器将不得不评估'config'对象(HTTPS://docs.angularjs .org/api/ng/service/$ http#usage)并决定是否应该采取行动。 – Claies