首頁 >web前端 >js教程 >為什麼 iOS 6 上的 Safari 會快取 $.ajax POST 請求,即使在 cache=false 的情況下?

為什麼 iOS 6 上的 Safari 會快取 $.ajax POST 請求,即使在 cache=false 的情況下?

Linda Hamilton
Linda Hamilton原創
2024-11-03 22:50:031040瀏覽

Why Does Safari on iOS 6 Cache $.ajax POST Requests Even with cache=false?

Safari 快取$.ajax 在iOS 6 上的結果:分析

自iOS 6 發布以來,人們開始擔心Safari 的Web 視圖快取$ .ajax 呼叫。儘管明確地將快取屬性設為“false”,但意外的快取行為仍然存在,特別是對於具有始終接收相同輸入參數的靜態函數簽署的 POST 方法。

根本原因

調查顯示,iOS 6 上的Safari 會快取缺少Cache-Control 標頭或包含「Cache-Control: max-age=0」的POST 請求。這與其他尊重 POST 回應不可緩存性的瀏覽器不同。

解決方法

要防止全域緩存,唯一有效的解決方案是設定「Cache-Control」:無快取。 」此標頭明確不允許快取。

範例

  • 沒有Cache-Control 或Expires 標頭:將發生快取。
  • Cache-Control max -age=0 並且立即過期:將發生快取。 >
  • 要在Apache 中實現此解決方法,請將以下行添加到您的配置文件中:

或者,將此行為僅限於POST 請求:

附加說明

Header set Cache-Control "no-cache"

值得注意的是,快取僅在POST請求參數和URL保持不變時才會發生。可以規避快取問題。

以上是為什麼 iOS 6 上的 Safari 會快取 $.ajax POST 請求,即使在 cache=false 的情況下?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn