Показать сообщение отдельно
  #1 (permalink)  
Старый 23.11.2010, 16:36
Интересующийся
Отправить личное сообщение для vandy3 Посмотреть профиль Найти все сообщения от vandy3
 
Регистрация: 28.10.2010
Сообщений: 14

Проблема с ajax в IE8
Здравствуйте. Пытаюсь обновлять определенный блок на странице динамически. Для этого написал функцию на 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 копия шапки, но без распечатки, должна же быть распечатка массива. Куда она девается? В чем может быть проблема?
Ответить с цитированием