Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Safari pada iOS 6 Cache $.ajax POST Permintaan Walaupun dengan cache=false?

Mengapa Safari pada iOS 6 Cache $.ajax POST Permintaan Walaupun dengan cache=false?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 22:50:031005semak imbas

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

Safari Caching $.ajax Results on iOS 6: An Analysis

Sejak iOS 6 dikeluarkan, kebimbangan telah timbul mengenai caching web view Safari $ .panggilan ajax. Walaupun secara eksplisit menetapkan atribut cache kepada 'false', gelagat caching yang tidak dijangka berterusan, terutamanya untuk kaedah POST dengan tandatangan fungsi statik yang secara konsisten menerima parameter input yang sama.

Punca Punca

Siasatan telah mendedahkan bahawa Safari pada iOS 6 menyimpan cache POST permintaan yang tidak mempunyai pengepala Cache-Control atau mengandungi "Cache-Control: max-age=0." Ini berbeza daripada penyemak imbas lain yang menghormati kebolehcachean respons POST.

Penyelesaian

Untuk mengelakkan cache secara global, satu-satunya penyelesaian yang berkesan ialah menetapkan "Cache-Control : tiada cache." Pengepala ini secara jelas tidak membenarkan cache.

Contoh

  • Tiada Kawalan Cache atau Pengepala Tamat Tempoh: Cache akan berlaku.
  • Kawalan Cache maks -age=0 dan tamat tempoh serta-merta: Cache akan berlaku.
  • Cache-Control: no-cache: Cache TIDAK akan berlaku.

Konfigurasi Apache

Untuk melaksanakan penyelesaian ini dalam Apache, tambahkan baris berikut pada fail konfigurasi anda:

Header set Cache-Control "no-cache"

Sebagai alternatif, untuk mengehadkan tingkah laku ini hanya kepada permintaan POST:

SetEnvIf Request_Method "POST" IS_POST
Header set Cache-Control "no-cache" env=IS_POST

Nota Tambahan

Perlu diingat bahawa caching hanya berlaku apabila parameter permintaan POST dan URL kekal tidak berubah. Memperkenalkan data rawak pada URL atau muatan POST boleh memintas isu caching.

Atas ialah kandungan terperinci Mengapa Safari pada iOS 6 Cache $.ajax POST Permintaan Walaupun dengan cache=false?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn