Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Creacion de ajax

Estas en el tema de Creacion de ajax en el foro de Javascript en Foros del Web. Código: TENGO EL SIGUIENTE CODIGO function nuevoAjax() { /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por lo ...
  #1 (permalink)  
Antiguo 19/07/2015, 13:25
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Creacion de ajax

Código:
TENGO EL SIGUIENTE CODIGO 

	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");
			alert("Si CREA EL AJAX");
		}
		catch(e)
		{
			try
			{
				// Creacion del objet AJAX para IE
				
				xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
				
			}
			catch(E)
			{		
				if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
				alert("ERROR "+E);
			}
		}
		return xmlhttp; 
	}
EL PROBLEMA ES QUE EN UNAS MAQUINAS CREA EL AJAX Y EN OTRAS NO HAORITA ESTOY TRABAJANDO EN UNA MAQUINA W7 CON NAVEGADOR FIREFOX 39 E INTERNET EXPLORER 8 PERO EN NINGUNO ME CREA EL AJAX CUAL SERA EL PROBLEMA. GRACIAS DE ANTEMANO
__________________
VENIMOS A APRENDER
  #2 (permalink)  
Antiguo 19/07/2015, 13:34
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Creacion de ajax

Usar mayúsculas no implica que te respondamos antes. Esto no es un Yahoo Respuestas....

Abre la consola de tu navegador y dinos qué errores te muestra.
  #3 (permalink)  
Antiguo 19/07/2015, 13:42
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Cita:
Iniciado por PHPeros Ver Mensaje
Usar mayúsculas no implica que te respondamos antes. Esto no es un Yahoo Respuestas....

Abre la consola de tu navegador y dinos qué errores te muestra.
Disculpa por las mayusculas en la consolo solo aparece el siguiente error

Campos de contraseña presentes en una página insegura (http://). Esto es un riesgo de seguridad que permite que se roben las credenciales de inicio de sesión de los usuarios.[Saber más]

No creo que ese sea el problema

encontre este error con el catch ReferenceError: ActiveXObject is not defined
__________________
VENIMOS A APRENDER

Última edición por VALFONSOG; 19/07/2015 a las 13:44 Razón: encontre otro error
  #4 (permalink)  
Antiguo 19/07/2015, 14:13
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Creacion de ajax

Para inicializar un objeto AJAX te recomiendo usar el siguiente código, ya que el que utilizas está un poco desfasado:

Código Javascript:
Ver original
  1. function nuevoAJAX(){
  2.   var xmlhttp;
  3.   if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari
  4.     xmlhttp = new XMLHttpRequest();
  5.   }
  6.   else { // IE6, IE5
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.   }
  9.   return xmlhttp;
  10. }

Simplemente llamas a la función y realizas la petición usando el objeto xmlhttp retornado.

  #5 (permalink)  
Antiguo 19/07/2015, 15:02
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Cita:
Iniciado por PHPeros Ver Mensaje
Para inicializar un objeto AJAX te recomiendo usar el siguiente código, ya que el que utilizas está un poco desfasado:

Código Javascript:
Ver original
  1. function nuevoAJAX(){
  2.   var xmlhttp;
  3.   if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari
  4.     xmlhttp = new XMLHttpRequest();
  5.   }
  6.   else { // IE6, IE5
  7.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.   }
  9.   return xmlhttp;
  10. }

Simplemente llamas a la función y realizas la petición usando el objeto xmlhttp retornado.

Hola probe tu codigo y si crea el ajax pero no obtengo respuesta sera por el metodo que utilizo para llamarlo que es el siguiente gracias por la ayuda

Código:
function datos(div, fomulario){
	var Formulario = document.getElementById(fomulario);
	var longitudFormulario = Formulario.elements.length;
	var cadenaFormulario = ""
	var sepCampos
	sepCampos = ""
		for (var i=0; i <= Formulario.elements.length-1;i++) {
			cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+encodeURI(Formulario.elements[i].value);
			sepCampos="&";
				}
alert(cadenaFormulario);
				var ajax=nuevoAJA();
				alert(div);			
			ajax.open("GET","funciones/funciones_tienda.php?tarea="+div+
			'&='+cadenaFormulario,true);
			alert(ajax);	
			ajax.onreadystatechange=function(){ 
				
				if (ajax.readyState==4){
							
						document.getElementById(div).innerHTML=ajax.responseText;
					}
					
	 
	ajax.send(null);
			}
		//window.onerror = new Function("return true");

 }
__________________
VENIMOS A APRENDER
  #6 (permalink)  
Antiguo 19/07/2015, 16:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Creacion de ajax

Sería bueno que también compruebes que el código de estado de la petición sea igual a 200, lo cual indica que la petición se completo de manera exitosa.

Código Javascript:
Ver original
  1. if (ajax.readyState==4 && ajax.status==200){
  2.     //Do stuff
  3. }

Y si deseas depurar esa parte para saber qué respuesta obtienes y por qué no se muestra, verifícala en la consola del navegador (al cumplirse la condición):

Código Javascript:
Ver original
  1. console.log(this.responseText);

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 19/07/2015 a las 21:27 Razón: Palabra faltante
  #7 (permalink)  
Antiguo 19/07/2015, 20:56
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Hice lo que dijo alexis pero sigue sin funcionar el mesaje que sale de console.log(this.responseText); es undefined lo puse en varias partes y muestra ese mensaje cabe destacar que dentro de ajax.onreadystatechange=function(){ no funciona por que no entra el metodo para mi logica deveria funcionar ya que en otro proyecto que tengo en la escuela funciona muy bien pero aqui en mi casa no alguna otra idea porfavor y gracias por sus respuestas.
__________________
VENIMOS A APRENDER
  #8 (permalink)  
Antiguo 19/07/2015, 21:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Creacion de ajax

Muéstranos el código actualizado para saber en dónde está el error. Usa el highlight para colocar el código.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 20/07/2015, 07:47
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Cita:
Iniciado por Alexis88 Ver Mensaje
Muéstranos el código actualizado para saber en dónde está el error. Usa el highlight para colocar el código.
Ya funciono el problema era que tenia esto->
Código Javascript:
Ver original
  1. ajax.send(null);
dentro del metodo ->
Código Javascript:
Ver original
  1. ajax.onreadystatechange=function(){
lo saque fuera del metodo y ya funciono.

Ya por ultimo me podrian dar una explicacion leve de porque ese "error" por que fallaba y GRACIAS por la ayuda.
__________________
VENIMOS A APRENDER
  #10 (permalink)  
Antiguo 20/07/2015, 07:55
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Cita:
Iniciado por PHPeros Ver Mensaje
Ah, sí, ahora lo veo.

El evento readystatechange no se puede ejecutar hasta que no se envia la llamada AJAX (mediante el método send), por ello nunca llegaba a realizarse
Ok gracias a los dos y espero poder ayudar algun dia en este foro saludos
__________________
VENIMOS A APRENDER
  #11 (permalink)  
Antiguo 20/07/2015, 08:02
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Creacion de ajax

Acabo de hacer una prueba y a mí me ha funcionado como lo tenías, luego ese no era el problema y además lo que digo del evento no es cierto
  #12 (permalink)  
Antiguo 20/07/2015, 08:08
 
Fecha de Ingreso: julio-2015
Ubicación: MEXICO
Mensajes: 46
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Creacion de ajax

Cita:
Iniciado por PHPeros Ver Mensaje
Acabo de hacer una prueba y a mí me ha funcionado como lo tenías, luego ese no era el problema y además lo que digo del evento no es cierto

Cual podra ser la falla ? es de esas cosas raras que de repente no se explican, en un momento pense que pódria ser el servidor pero javascript se ejecuta del lado cliente por lo que descarte esa opción.
__________________
VENIMOS A APRENDER
  #13 (permalink)  
Antiguo 20/07/2015, 12:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Creacion de ajax

En realidad, el error sí estaba en ejecutar el método .send() dentro del método onreadystatechange pues nunca se iba a producir un cambio en el estado de la petición (que es lo que detecta el último método mencionado) si nunca se realizaba el envío.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #14 (permalink)  
Antiguo 20/07/2015, 13:50
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Creacion de ajax

Yo también pensaba eso, pero parece ser que el evento se dispara inicialmente al invocar el método open(), sin necesidad alguna de realizar el envío
  #15 (permalink)  
Antiguo 20/07/2015, 14:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Creacion de ajax

Pero ese método no dispara el envío de los datos, tan solo prepara la petición; es el método .send() el que realiza el envío.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #16 (permalink)  
Antiguo 20/07/2015, 14:06
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Creacion de ajax

Sí, lo sé.

A lo que me refiero es que no es necesario realizar el envío para que dicho evento se dispare.
  #17 (permalink)  
Antiguo 20/07/2015, 14:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Creacion de ajax

No estoy seguro de que eso sea así. Supongo que escribiste los métodos en el orden correcto y por eso no tuviste el problema o quizá sucedió como crees, pero en fin.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: ajax, funcion
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 22:28.