Rumah > Artikel > hujung hadapan web > Mengapa Safari pada iOS 6 Cache $.ajax POST Permintaan Walaupun dengan 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
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!