我已經創建了下面的攔截器 - 它基本上重定向到一個已知位置時,該服務發送指示用戶的會話已過期的響應。角響應攔截 - 處理無極
它目前工作正常 - 什麼我不知道的是是否拒絕承諾,返回響應,或做不同的事情。如果我只是重定向,它按預期工作。如果我拒絕承諾,我最終會進入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);
});
};
};
如果會話已過期,服務器可能不應成功響應(HTTP 200)。最好以[401 Unauthorized](http://httpstatus.es/401)狀態迴應。 – idbehold