是否可以使用angularjs拦截器阻止请求?
$provide.factory('myHttpInterceptor', function($q, someService) { return { 'request': function(config) { // here I'd like to cancel a request depending of some conditions } } }); $httpProvider.interceptors.push('myHttpInterceptor');
在1.1.5及更高版本中,您可以使用配置对象的’timeout’属性。
从文档中:
超时– {number | Promise} –超时(以毫秒为单位),或承诺应在解决后中止请求。
简单的例子:
$provide.factory('myHttpInterceptor', function($q, someService) { return { 'request': function(config) { var canceler = $q.defer(); config.timeout = canceler.promise; if (true) { // Canceling request canceler.resolve(); } return config; } } }); $httpProvider.interceptors.push('myHttpInterceptor');