該賞金過期5天。此問題的答案有資格獲得 500聲望獎勵。 SSS希望引起更多人對這個問題的關注。
我們在 iPhone 和 Android 上安裝了一個 Angular/Ionic 應用程式。該應用程式呼叫我們 IIS Web 服務器上的 API。當服務器啟動時,一切正常。
但是,當我們部署新版本的 API 網站時,我們希望我們的應用程式顯示維護頁面。目前,在部署程序中,我們在 API 站點的根檔案夾中創建了一個 app_offline.htm 檔案,這是使網站脫機并在 IIS 中顯示維護頁面的常用方法。
不幸的是,這意味著來自 Ionic 應用程式的 CORS 預檢請求也會回傳 503 http 錯誤代碼;我猜 IIS 將整個站點都關閉了。我們無法在手機上的 Angular/Ionic 應用程式中處理這個 503 錯誤,因為預檢請求是由瀏覽器觸發的。我們為每個請求添加自定義標頭,這是無法避免的。最終結果是當 API 站點關閉時不會顯示維護頁面。
有沒有辦法在部署 API 站點時在我們的 Ionic/Angular 應用程式中顯示維護頁面?也許通過配置 IIS 以允許預檢請求,即使 app_offline.htm 到位,以某種方式處理 Ionic 端的 503,甚至停止來自 Ionic 應用程式的預檢 OPTIONS 請求?
注意:我不是在問如何配置我的站點來解決 CORS 問題,該部分已經到位。我想在部署支持 API 站點時處理應用程式中出現的預期 CORS 錯誤。
uj5u.com熱心網友回復:
出于安全原因,關于 CORS 請求出了什么問題的細節不適用于 JavaScript 代碼。所有代碼都知道發生了錯誤。確定具體出了什么問題的唯一方法是查看瀏覽器的控制臺以獲取詳細資訊。
您可以在 developer.mozilla.org 上找到更多資訊
我的建議是在攔截器內部處理任何其他請求錯誤。
然后,您可以使用錯誤物件的屬性(例如狀態 0)來決定是否應該檢查是否處于維護模式,或者您可以在出現任何錯誤時始終檢查該模式。
為此,您可以app_offline.htm通過 Web 請求檢查頁面當前是否已啟動,或者您可以使用單獨的 API 來確定您當前是否處于維護模式。
然后根據該回應采取適當的措施。
uj5u.com熱心網友回復:
也許你們之間討論 2 個站點/api 方法。當真正的 api 被更新時,額外的 api 來處理所有請求(使用必要的標頭回應,可能還有應用程式要處理的維護訊息/狀態)。
以下是一篇關于支持 2 個站點方法的文章。盡管主機提供的是靜態內容而不是 api,但可以遵循類似的模式
https://www.vegait.rs/media-center/blog/offline-maintenance-mode-in-iis
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324880.html
上一篇:使用@ionic/angular和@capacitor/XXX實作插件/Api之間的區別
下一篇:如何修改Ionic圖示內的屬性?
