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 делает запрос get, я возвращаю объект JSON, и моя функция history.pushState () вставляет некоторые данные json на мою страницу.
У меня проблема в IE8. По сути, когда я впервые открываю приложение, ссылки работают, но они работают только один раз. Второй раз, когда я нажимаю на ссылку это:
- Аякс
GET
- Получает ответ 304 (не изменен)
- Не вызывает функцию обратного вызова
jQuery.get()
и, следовательно, останавливается.
Если очистить кеш, он снова заработает. Поэтому я предполагаю, что IE выполняет запрос get, но затем он видит, что он уже запрашивал тот же самый файл в прошлом ... и поэтому полностью останавливает процесс.
Кто-нибудь знает решение этой проблемы? Я искал упоминания о 304 ошибках и ошибках с ajax и кэшированием в IE, но пока не нашел проблемы, идентичной моей.
Любая помощь высоко ценится
(протестировано на виртуальной машине Windows IE8 и в режиме IE 8 в Internet Explorer 9)
решаемые
Просто нужно было добавить следующий код в мою функцию document.ready, и проблема исчезла.
$.ajaxSetup ({cache: false});