」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 在跨來源請求中使用不透明回應有哪些限制和注意事項?

在跨來源請求中使用不透明回應有哪些限制和注意事項?

發佈於2024-11-04
瀏覽:696

What Are the Limitations and Considerations for Using Opaque Responses in Cross-Origin Requests?

使用不透明回應的限制和注意事項

Fetch API 引入的不透明回應表示 CORS 時跨來源請求的結果已停用。雖然它們提供了一定的隔離性,但仍存在一些需要注意的限制和潛在問題。

標頭和正文存取的限制

不透明回應的主要限制是無法存取回應的標頭或正文。標頭和正文相關方法(json()、text())等屬性不可用。這對於保護遠端來源的隱私至關重要。

資源使用與限制

儘管有局限性,但不透明回應可以用作網頁上的資源,如果瀏覽器允許非CORS跨來源資源。這些資源包括

與快取儲存 API 的交互作用

在快取儲存 API 中使用不透明回應時,會出現潛在的陷阱。無論實際請求狀態為何,不透明回應的狀態屬性均為 0。由於 add() 和 addAll() 方法拒絕具有非 2XX 狀態碼的回應,因此不透明回應將無法加入到快取中。若要避免這種情況,請明確執行 fetch(),然後使用不透明回應執行 put()。

navigator.storage API 和不透明回應

基於安全原因,瀏覽器會墊不透明回應,防止跨域資訊外洩。這種填充顯著增加了不透明回應的報告儲存大小。在 Google Chrome 中,每個不透明回應至少貢獻約 7 MB 的儲存使用量。如果不仔細管理,這可能會導致超出配額的異常。

使用注意事項

使用不透明回應時,請記住以下幾點:

  • 不透明回應提供隔離,但限制對標頭和正文的存取。
  • 它們可以用作網頁上的資源,允許非 CORS 跨源資源。
  • 與快取儲存 API 一起使用時需要進行特殊處理,以避免快取新增失敗。
  • 謹防導航器中不透明響應的誇大儲存大小報告。儲存API。
版本聲明 本文轉載於:1729584676如有侵犯,請洽[email protected]刪除
最新教學 更多>
  • Python 中的警告過濾器
    Python 中的警告過濾器
    Buy Me a Coffee☕ *My post explains Warning with warn() in Python. A warnings filter can set which warnings to show using these filters(actions) below....
    程式設計 發佈於2024-11-08
  • 我們如何在 O(n) 時間和 O(1) 空間內找到從 0 到 n-1 的數字數組中的重複項?
    我們如何在 O(n) 時間和 O(1) 空間內找到從 0 到 n-1 的數字數組中的重複項?
    在O(n) 時間和O(1) 空間中尋找重複項:深入解釋提出的問題涉及識別重複項數組中包含0 到n-1 範圍內的數字的元素。挑戰在於如何在 O(n) 時間複雜度內並僅使用恆定 (O(1)) 記憶體空間有效地實現這一目標。 所提出的解決方案採用了一種巧妙的技術,不需要哈希表或其他附加資料結構。相反,它利...
    程式設計 發佈於2024-11-08
  • 如何在 Python 多處理池中優雅地處理鍵盤中斷?
    如何在 Python 多處理池中優雅地處理鍵盤中斷?
    Python 多處理池中鍵盤中斷的優雅處理使用 Python 多處理池時,處理鍵盤中斷事件並不總是那麼簡單。在本文中,我們將探討如何處理此類中斷並確保進程正常退出。 提供的程式碼範例示範了這項挑戰。儘管有一個用於 KeyboardInterrupt 的 catch 區塊,但按下 control-C ...
    程式設計 發佈於2024-11-08
  • 逐步設定 React 和 Vite
    逐步設定 React 和 Vite
    Vite 是一款現代建立工具,旨在提供快速高效的開發體驗,特別是對於基於 JavaScript 的應用程序,例如 React、Vue 等。 Vite本身更注重開發速度,在開發過程中以最少的配置和更快的載入時間。由於匯總的最佳化,生產建置時間通常也更快 在本教學中,您將逐步學習如何使用 Vite 安...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中取得轉換後元素的準確寬度和高度?
    如何在 JavaScript 中取得轉換後元素的準確寬度和高度?
    在變換後檢索寬度和高度當對元素應用諸如旋轉(45deg)之類的變換時,該元素的視覺尺寸改變。但是,JavaScript 中的 width 和 height 屬性仍然反映原始未轉換的尺寸。 解決方案:使用 getBoundingClientRect()要取得轉換後更新的尺寸,請使用HTMLDOMEle...
    程式設計 發佈於2024-11-08
  • 使用 Python 抓取喬治亞州亞特蘭大律師資料的技術指南
    使用 Python 抓取喬治亞州亞特蘭大律師資料的技術指南
    在本指南中,我們將探討如何使用 Python 從法律網站上抓取律師數據,重點關注佐治亞州亞特蘭大的律師。這些資訊對於想要尋找律師、研究律師事務所或收集附近律師資料的人來說非常有價值。我們將使用流行的 Python 庫創建一個強大的抓取工具,可以幫助您收集亞特蘭大地區律師的資訊。 先決條件 在開始之...
    程式設計 發佈於2024-11-08
  • 掌握腳本標籤:使用 Async 和 Defer 進行精確的腳本控制
    掌握腳本標籤:使用 Async 和 Defer 進行精確的腳本控制
    在 Web 開發領域,優化頁面載入時間至關重要。 標籤的兩個強大屬性 - 非同步和延遲 - 可以顯著影響網站的效能。在沒有徹底理解這些屬性的情況下使用它們可能會影響效能並導致錯誤。讓我們從基礎開始,了解這些屬性的作用以及何時使用它們。 基礎知識:腳本如何加載 預設情況下,當瀏覽器...
    程式設計 發佈於2024-11-08
  • JavaScript 中 +=_ 運算子背後的奧秘是什麼?
    JavaScript 中 +=_ 運算子背後的奧秘是什麼?
    解碼JavaScript 中神秘的=_ 運算子JavaScript 中不常見的運算子=_ 讓開發人員感到困惑,讓他們想知道它的真正本質。此運算子結合了賦值運算子 = 和一元加運算子 _。讓我們深入研究它的複雜性並揭開它的用途。 一元加運算子 (_)一元加運算子 ( ) 是一個嘗試轉換其運算元的前綴運...
    程式設計 發佈於2024-11-08
  • CSS Flexbox:建立定價表
    CSS Flexbox:建立定價表
    介紹 CSS Flexbox 是 Web 開發人員創建靈活且響應式佈局的強大工具。 Flexbox 最常見的用例之一是建立定價表,這是許多網站的關鍵元素。在本文中,我們將討論使用 CSS Flexbox 建立定價表的優點和缺點,並探討其一些關鍵功能。 優點 將 C...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中格式化具有特定小數位的浮點數?
    如何在 JavaScript 中格式化具有特定小數位的浮點數?
    將浮點數格式化為特定小數位在JavaScript 中,從浮點數轉換為字串可能會導致尾隨小數位。若要限制小數點後的位數,您可以使用特定函數。 舍入函數一種方法是使用舍入函數,例如 toFixed。例如:var number = 0.3445434; console.log(number.toFixed...
    程式設計 發佈於2024-11-08
  • 為什麼我放棄 Python Flask 而選擇 Django:Web 框架對決
    為什麼我放棄 Python Flask 而選擇 Django:Web 框架對決
    當您開始使用 Python Web 開發時,您可能會遇到 Django 和 Python Flask 作為兩個最佳選擇。這兩個框架都有其優點,但根據我的經驗,Django 通常是更好的選擇。 我早期使用 Python Flask 的經歷 當我第一次開始探索 Web 開發時,Pyth...
    程式設計 發佈於2024-11-08
  • React原始碼中MessageChannel的使用
    React原始碼中MessageChannel的使用
    這篇文章我們分析React原始碼中MessageChannel的用法。 我們先來了解什麼是MessageChannel。 訊息頻道 Channel Messaging API 的 MessageChannel 介面允許我們建立一個新的訊息通道並透過它的兩個 MessagePort...
    程式設計 發佈於2024-11-08
  • 掌握 Java 單元測試:&#Student Class Test&# 項目
    掌握 Java 單元測試:&#Student Class Test&# 項目
    透過 LabEx 的學生類測試專案深入單元測試的世界,釋放您作為 Java 開發人員的潛力。這門綜合課程將引導您完成為簡單的 Student 類別編寫有效單元測試的過程,使您能夠編寫更可靠和可維護的程式碼。 介紹 在不斷發展的軟體開發領域,編寫健全且經過良好測試的程式碼的能力變得越...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中模擬屬性的 noSuchMethod 功能?
    如何在 JavaScript 中模擬屬性的 noSuchMethod 功能?
    如何在JavaScript 中實現noSuchMethod 屬性功能在JavaScript 中,noSuchMethod在JavaScript 中,noSuchMethod雖然標準 JavaScript 語言中的屬性沒有直接等效項,但可以模擬類似的屬性使用 ECMAScript 6 代理程式的功能。...
    程式設計 發佈於2024-11-08
  • 使用 GitLab CI/CD 和 Terraform 實作 Lambda 以進行 SFTP 整合、Go 中的 S Databricks
    使用 GitLab CI/CD 和 Terraform 實作 Lambda 以進行 SFTP 整合、Go 中的 S Databricks
    通过 Databricks 中的流程自动化降低成本 我的客户需要降低在 Databricks 上运行的流程的成本。 Databricks 负责的功能之一是从各种 SFTP 收集文件,解压缩它们并将它们放入数据湖中。 自动化数据工作流程是现代数据工程的重要组成部分。在本文中,我们将探...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3