IE 7/8 AJAX Cache Weirdness - PullRequest
       3

IE 7/8 AJAX Cache Weirdness

0 голосов
/ 01 сентября 2011

Хорошо, вот хорошая головоломка для вас, ребята.Я работаю над этой функцией, которая извлекает JSON из веб-служб PHP и отображает результаты в div.Результаты, похоже, не отображаются или заставят вас думать, что либо веб-служба не выводит никаких данных, либо вызов ajax неверен.Дальнейшие исследования показали, что веб-сервис выводит данные, а вызов ajax верен и отправляет соответствующие переменные в сервис.

Вот где это становится интересным ...

Если я нажму F12 и открою консоль, обновлю страницу и затем нажму на ссылку, которая инициирует вызов ajax ... подожди ...это работает!

Кто-нибудь знает, почему это происходит или, что еще лучше, как заставить IE7 / 8 STOP кэшировать AJAX?

Ого, я действительно ненавижу IE!

Мой код:

function getActivity(aid, callback) {
var date = new Date(); 
var timestamp = date.getTime();

var params = {
    apiKey: apiDefaults.key,
    service: 'wb_getActivity',
    agencyID: $('#booking-agencyID').val(),
    activityID: aid,
    nocache: timestamp
};

$.ajax({
    cache: false,
    url: apiDefaults.url,
    data: params,
    dataType: 'json',
    type: 'post',
    success: function (json) { console.log(json); callback(json); }
});}

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Поместите в URL динамическую переменную, например текущую дату и время, чтобы браузер не кэшировал запрос и ответ.

0 голосов
/ 17 июня 2014

Другой способ установить Cache в false, если это не работает, - изменить глобальные настройки jQuerys.

$.ajaxSetup({
    cache: false
});

Это также может помочь, если вы используете $ .get или $ .post расширения $ .ajax

0 голосов
/ 11 февраля 2012

Ответом было то, что у меня есть функция console.log (), идущая в IE без открытого отладчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...