Bagaimana cara mencegah permintaan jQuery Ajax dari caching di Internet Explorer?
Bagaimana cara mencegah permintaan jQuery Ajax dari caching di Internet Explorer?
Jawaban:
Anda dapat menonaktifkan caching secara global $.ajaxSetup()
, misalnya:
$.ajaxSetup({ cache: false });
Ini menambahkan stempel waktu ke querystring saat mengajukan permintaan. Untuk mematikan cache untuk $.ajax()
panggilan tertentu , aktifkan cache: false
secara lokal, seperti ini:
$.ajax({
cache: false,
//other options...
});
cache: false
hanya akan berfungsi dengan benar dengan permintaan HEAD dan GET. Juga, jika Anda menetapkan cache: false
di $.ajaxSetup
, menurut jQuery.ajaxSetup () dokumentasi , itu akan "nilai-nilai default set untuk permintaan masa depan Ajax." Jadi ya, itu akan menonaktifkan cache untuk semua permintaan HEAD dan GET AJAX mendatang.
cache: false
. Menonaktifkan caching secara global sepertinya berlebihan, tetapi memiliki kontrol per permintaan adalah sempurna. Terima kasih
Jika Anda mengatur parameter unik, maka cache tidak berfungsi, misalnya:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
cache
sudah dilakukan parameter di belakang layar.
Cache-Control: no-cache, no-store
Kedua nilai header ini dapat digabungkan untuk mendapatkan efek yang diperlukan baik pada IE maupun Firefox
Berikut ini proposal jawaban:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
Idenya adalah untuk menambahkan parameter ke kueri ajax Anda yang berisi misalnya tanggal saat ini suatu waktu, sehingga browser tidak akan dapat men-cache itu.
Lihat tautannya, itu dijelaskan dengan baik.
cache
sudah dilakukan parameter di belakang layar.
Anda dapat mendefinisikannya seperti ini:
let table = $('.datatable-sales').DataTable({
processing: true,
responsive: true,
serverSide: true,
ajax: {
url: "<?php echo site_url("your url"); ?>",
cache: false,
type: "POST",
data: {
<?php echo your api; ?>,
}
}
atau seperti ini:
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
semoga membantu
Ini adalah posting lama, tetapi jika IE memberi Anda masalah. Ubah permintaan GET Anda menjadi POST dan IE tidak akan lagi menyimpannya.
Saya menghabiskan terlalu banyak waktu untuk mencari tahu ini dengan cara yang sulit. Semoga ini bisa membantu.
cache:false
berdasarkan kasus per kasus adalah caranya.