Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Envió de POST en Google Chrome falla

Estas en el tema de Envió de POST en Google Chrome falla en el foro de Frameworks JS en Foros del Web. Hola en AJAX utilizo esta función para enviar datos por POST: Código: function formulario(url,elementos) { ele = new Array(); var element, ele1, elemento; contenedor = ...
  #1 (permalink)  
Antiguo 24/02/2011, 08:09
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Envió de POST en Google Chrome falla

Hola en AJAX utilizo esta función para enviar datos por POST:

Código:
function formulario(url,elementos)
{
	ele = new Array();
	var element, ele1, elemento;	
	
	contenedor = document.getElementById("detalles");
		
	for(var i=1; i<=elementos; i++)
	{
		element = 'elemento' + i;
		ele[i] = document.getElementById(element).value;
	}
	
	ajax=nuevoAjax();
	ajax.open("POST",url,true);
	ajax.onreadystatechange=function() 	
	{
		if (ajax.readyState==4) 
		{
			contenedor.innerHTML = ajax.responseText;
	 	}
		else 
		{
			contenedor.innerHTML = 'Cargando...';
	  	}
	}	
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	for(var i=1; i<=elementos; i++)
	{
		ele1 = 'elemento' + i;
		
		if(ele1 == 'elemento1')
		{
			elemento = ele1 + '=' + ele[i];
		}
		else if(ele1 != 'elemento1')
		
		elemento += '&' + ele1 + '=' + ele[i];
	}
	
	ajax.send(elemento);
}
y me funciona muy bien con Internet Explorer y Mozilla Firefox, pero el problema lo tengo en Google Chrome, simplemente no funciona, ¿Que estoy haciendo mal?

Las únicas 2 variables que paso son:

url = dirección absoluta
elementos = el numero de elementos dentro del formulario

Gracias por adelantado


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 24/02/2011, 17:02
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envió de POST en Google Chrome falla

no veo ningún problema, por el que te pueda ocurrir eso.
puedes enviar el array y no hacer el segundo ciclo
Cita:
ajax.send('elemento='+ele);
return;
  #3 (permalink)  
Antiguo 24/02/2011, 18:17
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Envió de POST en Google Chrome falla

Pus no, no funciono, a parte de que si hago lo que tu dices, la cadena llega vacía...


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 25/02/2011, 07:51
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envió de POST en Google Chrome falla

Cita:
Iniciado por bichomen Ver Mensaje
Pus no, no funciono, a parte de que si hago lo que tu dices, la cadena llega vacía...


bichomen
no llega vacía, mandas la variable elemento con todos los valores separados por coma
Cita:
elemento = valor1,valor2,valor3,valorn
el problema es que no estás sabiendo como recoger el valor de variable. has de hacer un split() en asp o, su equivalencia en php
  #5 (permalink)  
Antiguo 25/02/2011, 13:16
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Respuesta: Envió de POST en Google Chrome falla

Ha claro, pero es que no se saben cuantos elementos van a llegar, por que esta función no es para un formulario concreto donde se sabe cuantos elementos se envían, si no que la uso de forma genérica, de hay que no pueda meterle a mano los valore si no a través del for en relación a los elementos enviados...


Edito, creo que te entendido mal, tu dices que envié el array como variable y luego en la página que lo recibe hay a través de explode para php separe las cadenas.

Yo lo veo más eficiente que eso se haga a traves del archivo ajax, como hago ahora y no en cada página que recibe las variables, pero igualmente como te digo, el problema es que con Google Chome no funciona, si por ejemplo me tiene que abrir la página:

http://www.dominio.com/carpeta/carpe...ble2=variable2

lo que hace es irse directamente a:

www.dominio.com

que es donde tengo el include donde se carga el código.


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332

Última edición por bichomen; 25/02/2011 a las 13:26
  #6 (permalink)  
Antiguo 25/02/2011, 14:17
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Envió de POST en Google Chrome falla

Cita:
Iniciado por bichomen Ver Mensaje
Ha claro, pero es que no se saben cuantos elementos van a llegar, por que esta función no es para un formulario concreto donde se sabe cuantos elementos se envían, si no que la uso de forma genérica, de hay que no pueda meterle a mano los valore si no a través del for en relación a los elementos enviados...


Edito, creo que te entendido mal, tu dices que envié el array como variable y luego en la página que lo recibe hay a través de explode para php separe las cadenas.

Yo lo veo más eficiente que eso se haga a traves del archivo ajax, como hago ahora y no en cada página que recibe las variables, pero igualmente como te digo, el problema es que con Google Chome no funciona, si por ejemplo me tiene que abrir la página:
ahora tampoco sabes cuantas variables se van enviar. solo te indico una manera mas eficiente de hacerlo, yo lo veo claro
Cita:
variable1=valor1&variable2=valor2&variable3=valor3
es igual a
variable=valor1,valor2,valor3
usa la función "length" o como sea en php, para obtener el número de elementos

no hay ninguna razón por la no funcione en chrome. el único punto sería que el objeto xmlhttprequest no estuviese bien creado, pero no es el caso

Etiquetas: ajax, chrome, falla, google, post
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 16:22.