我有一个拦截器,可以自动检测401错误,获取一个新的令牌,重新激活请求......
问题在于,当它执行此breeze实体管理器时也获得此错误,而不知道请求被重做,导致下一次保存更改重复。
我已经尝试过,似乎无法找到通知breeze实体保存的方式..
此
拦截 var responseError = function (rejection) {
var authService = $injector.get("auth");
var authData = localStorageService.get("authorizationData");
if (rejection.status === 401) {
if (authData && authData.refreshToken) {
authService.refreshToken()
.then(function () {
var $http = $injector.get("$http");
return $http(rejection.config);
},
function (error) {
$location.path("/login");
return error;
});
}
else {
authService.logOut();
$location.path("/login");
}
}
return $q.reject(rejection);
};
任何方式通知微风重试是否成功?
答案 0 :(得分:1)
我认为问题在于你的拦截器 总是 落到最后一行并返回原来的401拒绝。
我认为你错过了将返回重试承诺的return语句:
if (rejection.status === 401) {
if (authData && authData.refreshToken) {
return authService.refreshToken().
...