在我的應用程序中,我有一個用於身份驗證的令牌機制。每個API調用都需要令牌,否則它會返回一個401. 我可以使用響應攔截器輕鬆處理。如何捕獲401我無法訪問的部分?
現在,當我使用常規路由,並說令牌過期,並且我嘗試訪問需要身份驗證的部分時,我將如何捕獲路由時獲得的401?
在頁面出現的第一件事是進行API調用時,我會知道令牌過期並將註銷用戶。
我希望能夠阻止用戶訪問視圖,如果令牌已過期。 響應攔截器是否也會處理這種情況?
在我的應用程序中,我有一個用於身份驗證的令牌機制。每個API調用都需要令牌,否則它會返回一個401. 我可以使用響應攔截器輕鬆處理。如何捕獲401我無法訪問的部分?
現在,當我使用常規路由,並說令牌過期,並且我嘗試訪問需要身份驗證的部分時,我將如何捕獲路由時獲得的401?
在頁面出現的第一件事是進行API調用時,我會知道令牌過期並將註銷用戶。
我希望能夠阻止用戶訪問視圖,如果令牌已過期。 響應攔截器是否也會處理這種情況?
如果您想要針對部分進行特殊處理,您可以創建一個解析函數來檢查定義的部分並採取適當的操作。它看起來是這樣的:
function CheckTemplate() {
return {
"TemplateCheck": function ($route, $http) {
var url = $route.current.templateUrl;
$http.get(url)
.error(function(data, status, headers, config) {
if (status===404) {
... // Do what you need to do
}
})
}
}
}
下面是一個簡單plunker爲404的部分檢查:
如果我不提供解析器功能,而控制權轉移到其他位置? –
如果你不使用解析器功能,並且在加載templateUrl時出現錯誤,你只會在你的JavaScript控制檯中出現錯誤。你的用戶不會看到任何東西。 – marcoseu
響應攔截器攔截利用服務$ HTTP,其中包括局部視圖中的所有要求而作出(NG - 包括)請求。 – Chandermani
,當我們在ng視圖中改變什麼時,它們是否攔截請求? –
是的。你可以把斷點和驗證。 – Chandermani