是否可以使用 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”属性。
来自documentation :
timeout – {number|Promise} – timeout in milliseconds, or promise that should abort the request when resolved.
简单的例子:
$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');
关于AngularJS : How to prevent a request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711550/