Saludos Comunidad;
Soy un principiante y estoy haciendo tutoriales de AJAX como conocía un poco Javascript intento adentrarme en él y utilizo el WAMPSERVER 2.0 como localhost(servidor) para probar.
Hasta ahora no tenia problemas en ejecutarlos, pero cuando intento hacer este ejemplo o tutorial que saque de un libro de anaya no me funciona, ya que me sale la petición como servidor no encontrado, o sea el típico error 404. ¿Puede ser porque en el Wamp Server aunque me aparezca el icono en verde, el tooltip me aparece Servidor desactivado?, o ¿Es que hay un error en el código o de configuración que no acierto a entender? , porque no creo que vayan a publicar la prestigiosa editorial un gazapo de esas características, ¿Que puede estar mal?
¿Podeís probarlo alguno de vosotros en algun server, o servidor local?, con eso me ayudariaís bastante, ya que el código lo comprendo bien y no le veo fallos.
El código de que lleva la hora que solicita la peticion del servidor:
llamahoraXML.php
Código:
<?php
header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" ?><clock1><timenow>".date('H:i:s')."</timenow></clock>";
?>
Aqui adjunto el código del 1º archivo el PHP:
ajaxdemo.php
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demostración Ajax</title>
<style>
.displaybox {
width:150px;
background-color:#ffffff;
color:#009900;
border:2px solid #000000;
padding:10px;
font:Verdana, Arial, Helvetica, sans-serif;
font-size:24px;
font-style:normal;
}
</style>
<script language="javascript" type="text/javascript">
function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objeto AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E)
{
if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
}
}
return xmlhttp;
}
var http = nuevoAjax();
function conseguirhora()
{
var miurl = 'dimehora.php'; // direccion del archivo php manejador del evento
// genera un numero aleatorio a través de la función random del objeto Math de Javascript para evitar problemas a la cache
var aleatorio = parseInt(Math.random()*99999999);
var modurl = miurl + "?aleatorio=" + aleatorio; // direccion url que se pasa ya modificada con el numero aleatorio
http.open("GET", modurl, true);
//prepara una función de respuestaAjax() para ejecutar para cuando llegue la respuesta
http.onreadystatechange = respuestaAjax;
// y finalmente se envía la petición
http.send(null);
}
function respuestaAjax()
{
// solo me interesa el estado (Completada) de la propiedad readyState , es decir =4
if(http.readyState == 4)
{
// si la respuesta del servidor (HTTP) es "OK", es decir = 200
if (http.status == 200)
{
//sentencias
var valorhora = http.responseXML.getElementsByTagName("timenow")[0]; // se carga en la propiedad responseXML de nuestro objeto Ajax el fichero XML de llamahora, es decir la hora del servidor que se pide mediante la funcion date de PHP, seleccionamos el elemento <timenow> de los datos XML que almacenamos en valorhora
document.getElementById("showtime").innerHTML = valorhora.childNodes[0].nodeValue; // escribir en el div de id = showtime el valor de valor hora
}
else
{
//mostrar un mensaje de error para cualquier otra respuesta HTTP
alert("Se ha producido un error en la respuesta del Servidor: " + "Error:" + http.status+ " "+ http.statusText);
}
}
}
</script>
</head>
<body style="background-color:#cccccc;text-align:center" onLoad="conseguirhora()">
<center>
<h1>Demostración Ajax</h1>
<h2>Obtiene la hora del servidor sin actualizar la página</h2>
<form>
<input type="button" value="Obtener la hora del servidor" onClick="conseguirhora()">
</form>
<div id="showtime" class="displaybox"></div>
</center>
</body>
</html>
y aqui el php que lleva la hora que solicita la petcion del servidor:
llamahoraXML.php