在我的離子2應用程序中,我有4個服務都提出了http請求。這些服務可以從我的應用程序中的8個不同頁面中擊中。我想處理授權令牌已過期或被刪除的情況或任何變化。因此,如果用戶點擊其中一個服務,並且它返回401 Unauthorized錯誤,那麼我如何處理錯誤並導航到我的登錄頁面,而無需對使用這些服務的所有頁面中的所有8個條件進行條件。當http請求授權失敗時,Ionic 2從服務導航
要重申:我寧願處理服務中發出請求的錯誤,並從那裏導航到我的登錄頁面,這可能嗎?
有沒有更好的方法來處理這個問題? 任何意見將不勝感激。
繼承人我期望的流量:
- 在任何網頁上,從我的服務之一(服務)
- 使API請求,如果該請求返回一個未經授權的錯誤(服務)
-
(服務中)
- 明確用戶數據
- 導航到登錄頁面(服務中)
- 否則,(假設請求成功)
- 解析/在我的頁面中使用數據(頁面)
你可以傳遞一個回調給服務。我會避免試圖通過導航控制器來服務。清理者只需傳遞一個導航到服務的回調 –
如果請求返回未授權的請求,則可以在服務中使用ionic [Events](https://ionicframework.com/docs/api/util/Events/)錯誤,您可以發佈一個事件(用戶:未授權),在app.component.ts文件中,您可以通過將用戶重定向到登錄頁面來處理該事件。這樣你只需要在服務中發佈事件,並且只需在app.component.ts文件中訂閱即可。如果您認爲這可行,請告訴我,我可以添加更多詳細信息的答案。 – sebaferreras
@sebaferreras這就是我最終做的。 – Everett