Здравствуйте. Пытаюсь обновлять определенный блок на странице динамически. Для этого написал функцию на javascript updateContent(url, block), которой передаются параметры куда обращаться и какой блок замещать. И в этой функции методом Post посылаю запрос на сервер php-скрипту.
Страница, html у меня имеет следующий вид:
<html>
<head><title></title></head>
<body>
<div>Шапка одинаковая для всех страниц</div>
<div id="content"></div>
<script>window.onload = function () {updateContent ( {url: 'script.php', block: 'content' });}<script>
</body>
</html>
Скрипт php при обращении к нему, проверяет содержится ли в массиве apache_request_headers() заголовок x-request-with, если не содержится, то подгружает шаблон выше, если содержится, то выполняет некоторые действия для получения содержимого и отдает содержимое в скрипт, который должен сделать content.innerHTML = responseText. Условно говоря, один и тот же скрипт смотрит, если к нему обращаются не через аякс, то выдает страницу целиком, а если через аякс (который встроен по событию загрузки страницы), то отдает содержимое. Во всех браузерах, кроме IE, работает как надо, а в IE8 я почему-то вижу шапку, и в блоке content опять шапку. И не могу понять, то ли виновато кэширование, то ли скрипт неправильно интерпретирует заголовки.
В самом скрипте стоят header:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: ".gmdate( "D, d M Y H:i:s")." GMT");
В скрипте JS:
xhr.open('POST', url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.send(data);
Проверка на обращение из аякс:
$headers = apache_request_headers(); $xhr = 0;
if ( !isset($headers['X-Requested-With']) ) { require_once "shablon.php"; }
else { $xhr = 1; }
Если пишу перед блоком проверки в php print_r($headers), то на странице наверху появляется распечатка массива заголовков без x-request-with,а в блоке content копия шапки, но без распечатки, должна же быть распечатка массива. Куда она девается? В чем может быть проблема?