[英]How to abort a request in a http-interceptor?
在一个应用程序中,我具有以下api的网址结构:
// public
public/url-xyz
// private
dashboard/url-xyz
知道这一点并尝试保存不必要的请求:取消请求的最佳方法是什么? 到目前为止,我尝试过的是:
angular.module('mymod').factory('httpInterceptors', function ($injector, $q, httpBuffer)
{
return {
request: function (config)
{
var url = config.url;
if (url.match('/dashboard/')) {
// immediately cancel request
var canceler = $q.defer();
config.timeout = canceler.promise;
canceler.reject(config);
// logout and go to login-page immediately
// ...
}
// request config or an empty promise
return config || $q.when(config);
}
};
});
但这可能导致$ressource
出现问题,因为它期望一个数组并获得一个对象作为响应(如果这样取消了它的请求)。
您应该可以返回$q.reject([reason])
angular.module('mymod').factory('httpInterceptors', function ($injector, $q, httpBuffer)
{
return {
request: function (config)
{
var url = config.url;
if (url.match('/dashboard/')) {
// immediately cancel request
return $q.reject(config);
// logout and go to login-page immediately
// ...
}
// request config or an empty promise
return config || $q.when(config);
}
};
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.