Falta la variable AJAX Post

Estoy usando una llamada ajax así:

o.open("POST",q,true);
o.setRequestHeader("Content-type","application/x-www-form-urlencoded");
o.setRequestHeader("Content-length",p.length);
o.setRequestHeader("Connection","close");

Donde q = la URL y la cadena de consulta. p = solo la cadena de consulta.

Mi consulta toma la forma de: "/apps/nettrax/f/events_detail.php?get=1&ids="+multiple values added like this: 123~34567~567~678~etc

Todo esto funciona si hay algunos valores, pero las cadenas de valores grandes fallan: la variable ids no pasa (aunque obtener se pasa) ... * No estoy usando jquery.

preguntado el 08 de noviembre de 11 a las 09:11

¿Dónde falla? Use algo como Firebug o Charles Proxy para ver las solicitudes que se envían y examine los registros de su servidor para ver las solicitudes que se reciben. ¿El navegador no envía los datos o el servidor no los acepta? -

Existe un límite para la longitud de una URL. Cuando dices grande, ¿de cuántos personajes estamos hablando? -

2 Respuestas

Está enviando una solicitud POST, pero especificando los parámetros en GET a través de la URL. Hay un límite en el tamaño de las URL, por lo que esto no funcionará. Debería pasar los parámetros en el send() llamada, para que se especifiquen como datos POST:

var parameters = "ids=" + encodeURIComponent(ids);
o.open("POST","events_detail.php",true);
o.setRequestHeader("Content-type","application/x-www-form-urlencoded");
o.setRequestHeader("Content-length",p.length);
o.setRequestHeader("Connection","close");
o.send(parameters);

respondido 08 nov., 11:13

no se dio cuenta de eso, está enviando una publicación mientras pasa parámetros a través de get. bonito - Packet Tracer

Supongo que pueden estar sucediendo estas dos cosas:

a) su cadena de URL es demasiado larga, por lo que está truncada

b) sus parámetros no están codificados como debe estar la URL, por lo que la cadena "rompe" la URL. si usa php, use una función como urlencode () o cree la suya propia.

respondido 08 nov., 11:13

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.