$(document).ready(function(){
alert(1);
$.getJSON('/test.php', function(d) {
alert(2);
});
});
Так вот, первый алерт в IE6 срабатывает, а второй - нет, хотя файл test.php исправно лежит в корне сайта и честно выдает корректный json на выход. То есть, такое впечатление, что просто не срабатывает вызов getJSON(). Думал, уже поседею )Короче, в чем суть. IE6 каким-то образом (в отличие от других браузеров) по дефолту кэширует такого рода запросы. Возможно, это и всем известная вещь, но как-то я её совсем упустил из вида. В общем, радикальный способ решения проблемы следующий: указать для всех ajax-запросов из jQuery отключение кэширования на стороне клиента, например, вот так:
$.ajaxSetup ({ cache: false});
После этого всё работает (вроде бы :).ps. Важное дополнение. Для IE6 имеет также большое значение правильное указание кодировки для возвращаемых данных. В случае, если данные в JSON находятся в utf-8, то в test.php следует прописать нечто типа такого перед выводом самих данных:
header('Content-Type: text/html;charset=utf-8');
Комментариев нет:
Отправить комментарий