Foros del Web » Programando para Internet » Javascript »

Error con el servidor en AJAX, utilizando el WAMP

Estas en el tema de Error con el servidor en AJAX, utilizando el WAMP en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/05/2012, 11:08
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Error con el servidor en AJAX, utilizando el WAMP

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
  #2 (permalink)  
Antiguo 28/05/2012, 12:23
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

el error HTTP 404 es claro, no encuentra el archivo, además veo:

var miurl = 'dimehora.php';

y no llamahoraXML.php
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 28/05/2012, 12:52
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Tienes razón ; Maycol..Muchas gracias, se me ha despistado que el nombre que le puse al archivo de php no era el mismo que el de la petición, en efecto era llamahoraXML.php y no dimehora.php, por lo que hay que corregir esa línea, que quedaría:

Código PHP:
Ver original
  1. var miurl = 'llamahoraXML.php';

Además posteriormente me he dado cuenta de otro error , la etiqueta de cierre XML <clock1> del archivo llamahoraXML.php , estaba mal ya que lo cerraba con </clock> en lugar de </clock1> que es lo que escribi.
  #4 (permalink)  
Antiguo 28/05/2012, 13:17
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

En primer lugar, bienvenido a FDW @astorga_as

Dado que son son tus primeros pasos y estás intentando aprender, toda experimentación es válida, pero creo que lo más importante es que encuentres siempre la solución más acorde a tu objetivo

Objetivo: Mostrar la hora del servidor.
Si tan solo con esto, date.php
Código PHP:
Ver original
  1. <?php
  2. echo date('H:i:s');
  3. ?>
php le va a responder a ajax. algo como esto
15:49:35,
Que necesidad entonces de crear un xml, parsearlo para recuperar el nodo, etc, etc, etc

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function nuevoAjax()
  4. {
  5.         var xmlhttp=false;
  6.         try
  7.         {
  8.                 // Creacion del objeto AJAX para navegadores no IE
  9.                 xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
  10.         }
  11.         catch(e)
  12.         {
  13.                 try
  14.                 {
  15.                         // Creacion del objet AJAX para IE
  16.                         xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  17.                 }
  18.                 catch(E)
  19.                 {
  20.                         if (!xmlhttp && typeof XMLHttpRequest!="undefined") xmlhttp=new XMLHttpRequest();
  21.                 }
  22.         }
  23.         return xmlhttp;
  24. }
  25.  
  26. function conseguirhora()
  27. {
  28.         ajax=nuevoAjax();
  29.         ajax.open("GET", "date.php", true);
  30.         ajax.onreadystatechange=function()
  31.         {
  32. if(ajax.readyState == 4 && (ajax.status==200 || window.location.href.indexOf("http")==-1)){
  33.                         document.getElementById("showtime").innerHTML=ajax.responseText;
  34.                 }
  35.         }
  36.         ajax.send(null);
  37. }
  38. //]]>
  39. </script>

incluso, agregando esto en tu demo.php
Código PHP:
Ver original
  1. <div id="showtime" class="displaybox"><?php include('date.php'); ?></div>
y cargando la funcion onload con setInterval()

Código HTML:
Ver original
  1. <body style="background-color:#cccccc;text-align:center" onload="setInterval('conseguirhora()',5000);">

Ya tendrías un reloj dinámico(yo mostraría solo horas y minutos y que actualice cada 60 segundos, tampoco necesitas un cronómetro)

En tu ejemplo en particular, primero probá con
Código XML:
Ver original
  1. <?xml version="1.0" ?>
  2. <clock>
  3. <timenow>12:15</timenow>
  4. </clock>

es decir, hacé primero un xml normal, si funciona, substituí la hora por la funcion date, si en ese caso no te funciona, verificá que la configutración de php.ini para la entrada
short_open_tag, esté en off, caso contrario php te genera un error en el xml ya que interpreta <? como la apertura de código php

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 29/05/2012, 03:59
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Desde luego que es mas enrevesado, tienes razón, pero claro lo que intento hacer es como tu dices experimentar, no lograr un código más eficiente ya que en 1º lugar intento comprender los conceptos. Hacer un xml y parserarlo es enredar las cosas, pero el ejemplo me vale para comprender los conceptos que es lo que necesito cuando estoy empezando.

Muchas gracias por tu aporte, emprear, ya que con tu solución comprendo mejor la idea. Con colaboraciones como la tuya da gusto utilizar este foro y no me siento solo en mi aprendizaje.
  #6 (permalink)  
Antiguo 29/05/2012, 08:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

concuerdo con @emprear, básicamente te indica que el usar AJAX no te obliga a usar XML estrictamente, incluso muchos FW usan JSON, realmente la variedad en como manejas la respuesta no tiene límites, en mis inicios separaba todo con | u otros caracteres, sigue experimentando con XML y te toparás con los inconvenientes de pasar el &, diviértete encontrando la solución (que malo soy)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 29/05/2012, 12:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Cita:
Iniciado por astorga_as Ver Mensaje
Desde luego que es mas enrevesado, tienes razón, pero claro lo que intento hacer es como tu dices experimentar, no lograr un código más eficiente ya que en 1º lugar intento comprender los conceptos. Hacer un xml y parserarlo es enredar las cosas, pero el ejemplo me vale para comprender los conceptos que es lo que necesito cuando estoy empezando.

Muchas gracias por tu aporte, emprear, ya que con tu solución comprendo mejor la idea. Con colaboraciones como la tuya da gusto utilizar este foro y no me siento solo en mi aprendizaje.
Gracias @astorga_as, ya que estamos te dejo un ejemplo de como trabajar sobre un xml
http://foros.emprear.com/xml/busqueda-xml.html
Mirá el código fuente para analizarlo.
Los criterios de búsqueda pueden ser modificados, combinando etiquetas, etc
Creo que es un buen ejemplo para que ejercites

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 30/05/2012, 01:58
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Gracias , por tu ejemplo emprear, empeze a examinarlo y me sirve de base para lo que quiero.
  #9 (permalink)  
Antiguo 30/05/2012, 04:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Buenas astorga_as, estoy en lo mismo que tu, siento no poder ayudarte. Me quiero poner con turoriales de AJAX, cual estas utilizando?

muchas gracias!
  #10 (permalink)  
Antiguo 30/05/2012, 06:32
 
Fecha de Ingreso: mayo-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 0
Información Respuesta: Error con el servidor en AJAX, utilizando el WAMP

Pues estoy utilizando varios entre ellos los de la editorial Anaya; PHP, Javascript y AJAX e Introducción al Ajax, también tengo enlaces de uno de librosweb de Introducción al AJAX:
[URL="http://www.librosweb.es/ajax/index.html"]
http://www.librosweb.es/ajax/index.html[/URL]

En fin , espero que te sirva

Un saludo

Última edición por astorga_as; 30/05/2012 a las 06:38
  #11 (permalink)  
Antiguo 30/05/2012, 06:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Error con el servidor en AJAX, utilizando el WAMP

saben que, aquí están las bases más útiles que cualquier principiante no puede dejar ir: http://librosweb.es/, y no se olviden de la wiki del foro
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax, funcion, html, input, php, servidor, wamp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:32.