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:
Aqui adjunto el código del 1º archivo el PHP:<?php header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" ?><clock1><timenow>".date('H:i:s')."</timenow></clock>"; ?>
ajaxdemo.php
Código:
y aqui el php que lleva la hora que solicita la petcion del servidor:<!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>
llamahoraXML.php