我想通過Angular.js在單個頁面的web應用上實現身份驗證。該official Angular documentation建議使用攔截器:使用Angular.js攔截器捕獲HTTP 401
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
return {
// ...
'responseError': function(rejection) {
// do something on error
if (canRecover(rejection)) {
return responseOrNewPromise
}
return $q.reject(rejection);
}
};
});
當服務器發送401錯誤的問題是,瀏覽器將立即停止與「未授權」的消息,或與登錄彈出窗口(當認證HTTP報頭由發送服務器),但Angular無法捕獲它的攔截器HTTP錯誤處理,如推薦。我誤解了什麼嗎?我嘗試了更多在網上找到的例子(例如this,this和this),但他們都沒有工作。
你有沒有得到這個想通了?我有完全相同的問題 –
凹凸不平,在這裏! – Romain
同樣在這裏,答案都沒有用,攔截器確實有效,但異常仍然在攔截器之前拋出。這是不是很奇怪? – windmaomao