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

Ajax interpreta & de un dato como un & de una variable de envío

Estas en el tema de Ajax interpreta & de un dato como un & de una variable de envío en el foro de Frameworks JS en Foros del Web. Hola a todos, llevo unas horas intentando saber por qué en un envío POST en ajax, no llegaba un dato (en éste caso una url) ...
  #1 (permalink)  
Antiguo 20/08/2008, 18:27
Avatar de yrduk  
Fecha de Ingreso: enero-2007
Ubicación: Caracas, Venezuela
Mensajes: 277
Antigüedad: 17 años, 11 meses
Puntos: 3
Exclamación Ajax interpreta & de un dato como un & de una variable de envío

Hola a todos, llevo unas horas intentando saber por qué en un envío POST en ajax, no llegaba un dato (en éste caso una url) completa.

La url tenía varios &, y solo salía hasta antes del primer &.

Por ejemplo:
http://www.google.es/search?sourceid...L_esVE284VE285

Solo salía:
http://www.google.es/search?sourceid=navclient-ff

Y es porque jquery está interpretando los & como variables de envío. Al hacer un print_r(); salían cada array [q], [ie], [rlz], etc...

Mi código es el siguiente:

Código:
  var post=$("#post").attr("value");
   $.ajax({
           type: "POST",
		   url:"./send_post.php",
		   dataType: "text",
		   contentType: "application/x-www-form-urlencoded",
           data:"post="+post,
           success:llegadaDatos,
           timeout:1000,
         }); 
		
  return false;
Espero poder resolver el problema lo más pronto posible, gracias de antemano.

Saludos!
__________________
Twitter/kudry
mkd.la - blog
  #2 (permalink)  
Antiguo 20/08/2008, 19:13
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 17 años, 1 mes
Puntos: 25
Respuesta: Ajax interpreta & de un dato como un & de una variable de envío

Debes usarlo de esta manera.

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("destinatario="+destinatario+"&emisor="+ emisor+"&mensaje="+mensaje)
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #3 (permalink)  
Antiguo 21/08/2008, 05:54
Avatar de yrduk  
Fecha de Ingreso: enero-2007
Ubicación: Caracas, Venezuela
Mensajes: 277
Antigüedad: 17 años, 11 meses
Puntos: 3
Respuesta: Ajax interpreta & de un dato como un & de una variable de envío

Cita:
Iniciado por eddwinpaz Ver Mensaje
Debes usarlo de esta manera.

ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("destinatario="+destinatario+"&emisor="+ emisor+"&mensaje="+mensaje)
Así es con jquery? creo que no =(
__________________
Twitter/kudry
mkd.la - blog
  #4 (permalink)  
Antiguo 21/08/2008, 08:00
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años, 1 mes
Puntos: 14
Respuesta: Ajax interpreta & de un dato como un & de una variable de envío

Hola yrduk

Lo que necesitas es "escapar" el dato que quires pasar.

var post=$("#post").attr("value");
post = escape(post)

luego en php usas la funcion urldecode
__________________
My path is lit by my own fire, I only go where I desire
  #5 (permalink)  
Antiguo 21/08/2008, 11:23
Avatar de yrduk  
Fecha de Ingreso: enero-2007
Ubicación: Caracas, Venezuela
Mensajes: 277
Antigüedad: 17 años, 11 meses
Puntos: 3
Respuesta: Ajax interpreta & de un dato como un & de una variable de envío

Cita:
Iniciado por foreverOdd Ver Mensaje
Hola yrduk

Lo que necesitas es "escapar" el dato que quires pasar.

var post=$("#post").attr("value");
post = escape(post)

luego en php usas la funcion urldecode
Muchas gracias! eso resolvió mi problema

Saludos!
__________________
Twitter/kudry
mkd.la - blog
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 19:57.