Повторите повторный вызов в перехватчике
Официальная справочная документацияобеспечивает этот пример кода, чтобы повторить запрос в ErrorInterceptor:
var refreshAccesstoken = function() {
var deferred = $q.defer();
// Refresh access-token logic
return deferred.promise;
};
Restangular.setErrorInterceptor(function(response, deferred, responseHandler) {
if(response.status === 403) {
refreshAccesstoken().then(function() {
// Repeat the request and then call the handlers the usual way.
$http(response.config).then(responseHandler, deferred.reject);
// Be aware that no request interceptors are called this way.
});
return false; // error handled
}
return true; // error not handled
});
Однако, как говорится в комментариях, вторая попытка не вызовет перехватчиков, поскольку она использует $ http напрямую.
Есть ли способ заставить второй запрос также пройти через Restrict конвейер и выполнить ErrorInterceptor?