Foros del Web » Programando para Internet » Javascript »

Descarga de archivo con AJAX

Estas en el tema de Descarga de archivo con AJAX en el foro de Javascript en Foros del Web. Hola a todos, Estoy iniciandome en la programacion de aplicaciones web usando AJAX. Estoy intentando hacer pruebas para ver el funcionamiento de esta tecnología. Lo ...
  #1 (permalink)  
Antiguo 17/11/2013, 14:53
 
Fecha de Ingreso: noviembre-2008
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 15 años, 5 meses
Puntos: 2
Descarga de archivo con AJAX

Hola a todos,

Estoy iniciandome en la programacion de aplicaciones web usando AJAX. Estoy intentando hacer pruebas para ver el funcionamiento de esta tecnología.

Lo que quiero es mostrar el contenido de un archivo de texto que se encuentra en mi servidor local sin tener que recargar la pagina.

El codigo es el siguiente:

Código:
function descargaArchivo() {
	// Obtener la instancia del objeto XMLHttpRequest
	if(window.XMLHttpRequest) {
		peticion_http = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) {
		peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
	}
	// Preparar la funcion de respuesta
	peticion_http.onreadystatechange = muestraContenido;
	// Realizar peticion HTTP
	peticion_http.open('GET', 'http://localhost/*MiAplicacionWeb*/TextFiles/HolaMundo.txt', true);
	peticion_http.send(null);
	function muestraContenido() {
		
		if(peticion_http.readyState == 4) {
			if(peticion_http.status == 200) {
				
				alert(peticion_http.responseText);
			}
		}
	}
}
window.onload = descargaArchivo;
Tras hacer muchas pruebas he comprobado que la petición http nunca llega al estado con codigo 200.

¿Que es lo que estoy haciendo mal? ¿por que no consigo visualizar el contenido del archivo?

Gracias de antemano y un saludo
  #2 (permalink)  
Antiguo 17/11/2013, 19:00
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Descarga de archivo con AJAX

primero, define como se deben las variables, segundo verifica la ruta, que sea correcta, tercero..*MiAplicacionWeb*?...estas empleando caracteres no validos en la url...
  #3 (permalink)  
Antiguo 18/11/2013, 16:29
 
Fecha de Ingreso: noviembre-2008
Ubicación: Sevilla
Mensajes: 157
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Descarga de archivo con AJAX

El nombre entre arteriscos es un nombre que he puesto en el foro para indicar que ahi va el nombre de mi aplicacion web. No creo que esté fallando por no declarar bien las variables...

La ruta es correcta, puesto que al escribirla en mi navegador se visualiza el contenido del fichero de texto.
¿Tengo que incluir alguna libreria? ¿He de instalar algo en el servidor tomcat?

Gracias
  #4 (permalink)  
Antiguo 18/11/2013, 18:37
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: Descarga de archivo con AJAX

Hola,

A mi me trabaja tu ejemplo bien, que browser estas usando..

solo definí la variable que no definiste para que solo exista en el scope de tu función principal..
Y hice el path abstracto, eso por si esque el browser este asiendo el request como a otro dominio el cual no es permitido a menos que hagas Jsonp.
Código Javascript:
Ver original
  1. <script>
  2. function descargaArchivo() {
  3.     var peticion_http = null;
  4.     // Obtener la instancia del objeto XMLHttpRequest
  5.     if(window.XMLHttpRequest) {
  6.         peticion_http = new XMLHttpRequest();
  7.     }
  8.     else if(window.ActiveXObject) {
  9.         peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
  10.     }
  11.     // Preparar la funcion de respuesta
  12.     peticion_http.onreadystatechange = muestraContenido;
  13.     // Realizar peticion HTTP
  14.     peticion_http.open('GET', 'MiAplicacionWeb/TextFiles/HolaMundo.txt', true);
  15.     peticion_http.send(null);
  16.    
  17.     function muestraContenido() {
  18.        
  19.         if(peticion_http.readyState == 4) {
  20.             if(peticion_http.status == 200) {
  21.                
  22.                 alert(peticion_http.responseText);
  23.             }
  24.         }
  25.     }
  26. }
  27. window.onload = descargaArchivo();
  28. </script>

Para no tener la variable en el scope de tu función principal and no queres crear otra función podes usarla así también..

Código Javascript:
Ver original
  1. <script>
  2. function descargaArchivo() {
  3.     var peticion_http = null;
  4.     // Obtener la instancia del objeto XMLHttpRequest
  5.     if(window.XMLHttpRequest) {
  6.         peticion_http = new XMLHttpRequest();
  7.     }
  8.     else if(window.ActiveXObject) {
  9.         peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
  10.     }
  11.     // Preparar la funcion de respuesta
  12.     peticion_http.onreadystatechange = function () {
  13.        
  14.         if(this.readyState == 4) {
  15.             if(this.status == 200) {
  16.                
  17.                 alert(this.responseText);
  18.             }
  19.         }
  20.     };
  21.     // Realizar peticion HTTP
  22.     peticion_http.open('GET', 'MiAplicacionWeb/TextFiles/HolaMundo.txt', true);
  23.     peticion_http.send(null);
  24.    
  25. }
  26. window.onload = descargaArchivo();
  27. </script>

Asi no clogeas el scope de tu función principal y mas legible me parece..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Última edición por utan; 18/11/2013 a las 18:45
  #5 (permalink)  
Antiguo 18/11/2013, 20:25
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Descarga de archivo con AJAX

Cita:
Iniciado por marodal Ver Mensaje
ENo creo que esté fallando por no declarar bien las variables...
no, pero, primero hace al buen habito de escribir código correctamente, y no a las chapuzas, eso diferencia un buen programador de alguien que se esta tirando pinitos al aire haber si le sale...segundo, definir o no una variable, implica distintas formas de trabajar con el scope, que te puede generar resultados inesperados si defines mal las variables...es tema básico, yo empezaría por ahí antes que por Ajax...

...con respecto a tu consulta, que te indica la consola?

Etiquetas: ajax
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 17:40.