拦截Angular中的jQuery ajax调用

时间:2016-12-09 03:32:53

标签: javascript jquery angularjs ajax

我在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请求的正确方法是什么?理想情况下,我希望两者都有一个处理程序。

1 个答案:

答案 0 :(得分:0)

没有真正的答案,但肯定拦截器是angular的$ httpProvider对象的属性特定的数组。 jquery中没有类似的东西。你的代码不可能知道关于$ .ajax调用的东西。我不知道,也许你可以在承诺中包装jquery ajax,重新创建类似拦截器的东西。

在这篇文章中描述如何在角落里制作拦截器。这可能是你的暗示。 what are interceptors

more info

希望它有所帮助!