如何定义每个XHR后执行的钩子?

时间:2014-08-29 08:12:21

标签: javascript ajax django angularjs

我的用例:
我使用Angular和Django后端。 Django有一个很好的内置应用程序叫messages - 它允许向用户显示一次性消息,例如"您的帐户已成功激活!"。我想要做的是用AJAX显示它们 - 我想在客户端的每个XHR之后请求它们。如此article中所述。

我怎么能做这样的挂钩?

1 个答案:

答案 0 :(得分:0)

你应该使用httpInterceptor在每个$ http请求之前/之后执行某些活动。

请查看有关如何定义http interceptor

的帖子

基本上定义具有所需行为的工厂

module.factory('myInterceptor', ['$q', 'someAsyncService', function($q, someAsyncService) {
    var requestInterceptor = {
        request: function(config) {
                   //custom logic here
        }
    };

    return requestInterceptor;
}]);

并将其添加到http拦截器列表

module.config(['$httpProvider', function($httpProvider) {
    $httpProvider.interceptors.push('myInterceptor');
}]);