Здравствуйте, начал делать лабу курса Специалист AJAX, но запрос не работает у меня - в видосе то у них все ок. Может Денвер нужно как-то спецом настроить?
Windows 8.1, Denwer 3 (PHP 5.3.13, MySQL 5.1, PostgreSQL 8.4 etc.) - я его просто установил, запустил и все.
Браузеры говорят "req is NULL", IE говорит:
Функция getXMLHttpRequest в отдельный файл вынесена, файл подключен нормально консоль говорит.
function getXmlHttpRequest(){
if(window.XmlHttpRequest){
try{return new XmlHttpRequest();}
catch(e){}
}else if(window.ActiveXObject){
try{return new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){}
try{return new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){}
}
return null;
}
Вот сам код:
// URL сценария, возвращающего время
var url = "gettime.php?delay=3"; // Задержка в запросе: gettime.php?delay=3
var req = getXmlHttpRequest();
// Синхронный запрос
function showSyncRequest(){
// Запрос
req.open(GET, url, false);
req.send(null);
// Вывод ответа
var res = document.getElementById("syncResult");
res.firstChild.nodeValue = req.responseText;
}
HTML
<h1>Синхронные и асинхронные запросы</h1>
<div id="sync">
<h2>Синхронный запрос</h2>
<div id="syncResult" class="result">Здесь будет время</div>
<button onclick="showSyncRequest()">Пробуем!</button>
</div>
Ну и на всякий случай сам пхп.
<?php
/*
** Сценарий возвращает текущее время
*/
// Установка типа данных и кодировки
header("Content-type", "text/plain; charset=utf-8");
// Чтение параметра задержки и задержка в коде
if (isset($_GET["delay"])){
$delay = abs((int) $_GET["delay"]);
$currTime = time();
while (time() < $currTime + $delay) {}
}
// Текущее время
echo date("H:i:s");
?>