【问题标题】:How to define hook that will be executed after every XHR?如何定义将在每个 XHR 之后执行的钩子?
【发布时间】:2014-10-23 05:23:53
【问题描述】:
我的用例:
我将 Angular 与 Django 后端一起使用。 Django 有一个很好的内置应用程序messages - 它允许向用户显示一次性消息,例如“您的帐户已成功激活!”。我想做的是用 AJAX 向他们展示 - 我想在客户的每个 XHR 之后请求他们。就像article 中描述的那样。
我怎样才能制作这样的钩子?
【问题讨论】:
标签:
javascript
ajax
django
angularjs
【解决方案1】:
您应该在每个 $http 请求之前/之后使用 httpInterceptor 执行某些活动。
请看这篇关于如何定义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');
}]);