我在Angular应用程序中使用CouchDBs捆绑的$ .couch API。我想拦截所有ajax请求,无论是来自Angular的$ http服务还是jQuery的$ .ajax(这是$ .couch使用的)。我有一个以角度设置的拦截器如下:
$httpProvider.interceptors.push(['$location', '$q', function($location, $q) {
return {
'request': function(request) {
return request;
},
'responseError': function(response) {
if (response.status === 401) {
console.log("UH OH")
}
// otherwise, default behaviour
return $q.reject(response);
}
};
}]);
我注意到的是来自$ http角度服务的请求和响应错误被捕获,但$ .ajax调用和错误不是。所以我的问题是,对于我来说,从进出角度来拦截我的应用程序中的所有ajax请求的正确方法是什么?理想情况下,我希望两者都有一个处理程序。
答案 0 :(得分:0)
没有真正的答案,但肯定拦截器是angular的$ httpProvider对象的属性特定的数组。 jquery中没有类似的东西。你的代码不可能知道关于$ .ajax调用的东西。我不知道,也许你可以在承诺中包装jquery ajax,重新创建类似拦截器的东西。
在这篇文章中描述如何在角落里制作拦截器。这可能是你的暗示。 what are interceptors
希望它有所帮助!