[英]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.