Як запобігти кеш-запиту jQuery Ajax в Internet Explorer?
Як запобігти кеш-запиту jQuery Ajax в Internet Explorer?
Відповіді:
Ви можете відключити кешування у всьому світі $.ajaxSetup()
, наприклад:
$.ajaxSetup({ cache: false });
Це додає часову позначку до рядка запиту під час оформлення запиту. Щоб вимкнути кеш-пам'ять для певного $.ajax()
дзвінка, встановіть cache: false
його локально, наприклад:
$.ajax({
cache: false,
//other options...
});
cache: false
буде правильно працювати лише із запитами HEAD та GET. Крім того , якщо ви встановите cache: false
в $.ajaxSetup
, згідно jQuery.ajaxSetup документації () , то це буде «набір значень за замовчуванням для майбутніх запитів Ajax.» Так, так, він вимкне кеш для всіх майбутніх запитів HEAD і GET AJAX.
cache: false
. Вимкнення кешування в усьому світі здається надмірним, але контроль за запитом є ідеальним. Спасибі
Якщо встановити унікальні параметри, кеш не працює, наприклад:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
cache
параметр вже робить за кадром.
Cache-Control: no-cache, no-store
Ці два значення заголовка можна комбінувати для отримання необхідного ефекту як для IE, так і для Firefox
Ось пропозиція відповіді:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
Ідея полягає в тому, щоб додати ваш запит ajax, який містить, наприклад, час поточної дати, тому браузер не зможе кешувати його.
Подивіться за посиланням, це добре пояснено.
cache
параметр вже робить за кадром.
Ви можете визначити це так:
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; ?>,
}
}
або так:
$.get({url: <?php echo json_encode(site_url('your api'))?>, cache: false})
сподіваюся, що це допомагає
Це стара публікація, але якщо IE доставляє вам проблеми. Змініть GET-запити на POST, і IE більше не буде кешувати їх.
Я витратив занадто багато часу, розгадуючи це важкий шлях. Сподіваюся, це допомагає.
cache:false
в кожному конкретному випадку - це шлях.