Jquery.get () не работает в IE8 / 9. Не загружает кешированные страницы 304 не изменено

Code Igniter версии '2.0.3' JQuery 1.7 Плагин JQuery History

Привет, ребята,

У меня есть приложение CodeIgniter, которое я создал в стиле ajax. У меня есть следующая функция:

$(document).on('click','.ajax_link',function(e){
    //Stop the normal href action
    e.preventDefault();

    //Grab the destination URL
    var new_url = $(this).attr('href')

    //Grab the content via ajax and pass it to the history change function
    $.get(base_url+new_url,function(data){
        History.pushState({
            content:data.content,
            url:data.url
        }, data.title, data.url);
        //Refresh some site variables
        refresh();
    },'json');
});

Все, что он делает, это захват щелчков по элементам привязки с помощью класса ajax_link и отправка ответа функции, которая обрабатывает размещение этих данных ответа на странице.

Это работает в Chrome и FF. Я нажимаю ссылку, jQuery отправляет запрос на получение, я возвращаю объект JSON, и моя функция history.pushState () вставляет некоторые данные json на мою страницу.

У меня проблема в IE8. По сути, когда я впервые открываю приложение, ссылки работают, но работают только один раз. Во второй раз я щелкаю ссылку:

  • Получает ли ajax GET
  • ответ 304 (не изменено)
  • Не вызывает jQuery.get () функция обратного вызова и поэтому перестает работать.

Если я очищу кеш, он снова заработает. Итак, я предполагаю, что IE выполняет запрос на получение, но затем он видит, что он уже запрашивал тот же самый файл в прошлом ... и поэтому полностью останавливает процесс.

Кто-нибудь знает решение этой проблемы? Я искал упоминания о 304 ошибках и ошибках с ajax и кешированием в IE, но пока не нашел проблемы, идентичной моей.

Любая помощь очень ценится

(Протестировано на виртуальной машине Windows IE8 и в режиме IE 8 в Internet Explorer 9)

Решено

Просто нужно было добавить следующий код в мою функцию document.ready и проблему исчез.

$.ajaxSetup ({cache: false});
7
задан Brad Barrow 18 January 2012 в 00:40
поделиться