我目前正在構建基於Cordova和Ionic的移動應用程序。我正在處理第三方API(即它不能,也不會爲了這個應用程序而改變)。在Cordova/Ionic iOS應用程序中使用WWW-Authenticate處理HTTP 401
當應用程序的用戶未認證 - 是,如果他們的會話已過期或以其它方式 - 的API與HTTP響應401,與WWW-Authenticate頭。
在瀏覽器而開發,這是好的,但同時在iPhone上,或者在模擬器它不會出現,並且應用必須達到要求的超時時間。當達到該超時時間時,請求被取消。這意味着在JavaScript中,我們只需取回0的HTTP狀態,而沒有真實的數據來確定是否出現超時或認證問題。
目前,我已經採取了一些有教育意義的猜測,比如在超時發生時檢查手機是否具有連接性等,但這不是一個理想的解決方案,因爲用戶仍然需要等待超時,並且它並不總是正確。
如何檢查時,HTTP 401對話框出現,並期望得到響應?我需要能夠識別何時發生實際的401,以及何時請求超時。
如果在JavaScript中有一個方法可以完成,那就太棒了。本地解決方案也可以工作,無論是插件還是其他方式。
在常規的瀏覽器不正常工作,因爲我已經嘗試過了 - 然而,在手機上,在應用程序內,我們永遠不會提示從401進入細節,因此請求結束達到超時,並被取消。攔截器在請求完成之後纔會觸發。到那個時候,它已經超時了,我們剩下的狀態爲0.狀態0可能來自一個*真實*超時,或者像這樣的認證失敗......或者甚至可能是其他事情。 – Seer