我在下面创建了拦截器——当服务发送指示用户会话已过期的响应时,它基本上重定向到已知位置。
它目前工作正常——我不确定是拒绝承诺、返回响应还是做一些不同的事情。如果我只是重定向,它会按预期工作。如果我拒绝承诺,我最终会进入 ajax 调用的错误处理程序(未显示),但否则它会成功重定向。
在这种情况下实现承诺的正确方法是什么?
编辑:添加了 else 子句。
var responseInterceptor = function ($q) {
return function (promise) {
return promise.then(function (response) {
if (response.data.SessionHasExpired == true) {
window.location.href = "/Home/Login?message=User session has expired, please re-login.";
return $q.reject(response); //do I need this? What to do here?
}
else {
return response;
}
}, function (response) {
return $q.reject(response);
});
};
};