entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Error al mandar div por url con javascript y ajax

Hola a todos, quiero mandar el contenido de un div por javascript y ajax y me manda este error

"The requested URL's length exceeds the capacity limit for this server."

mi codigo es el siguiente

function prev() {

        var variable = contenido.innerHTML; 
        //alert(variable);
                                    var parametros = {
                                "html" : variable
                        };
                        $.ajax({
                                data:  parametros,
                                url:   'intento.php',
                                type:  'post',
                                beforeSend: function () {

                                },
                                success:  function (response) {

                        alert("ok"+response);
                        document.location.href = "intento.php?parametro1=" + variable

                                }
                        }); 

                        }

de que manera puedo mandar el contenido del div? ya que ese contenido lo voy a ocupar para crear un pdf

Gracias

1voto

carlossevi comentado

Parece que el error es error porque la "línea de la petición" (RequestLine) es demasiado larga para que el servidor web la maneje.

¿Qué servidor web estás usando? Apache por defecto pone el límite para esa línea en 8190 bytes, que aproximadamente podrían ser unos 4000 caracteres, aunque depende de la codificación. ¿Cómo de larga es tu petición?

No le veo sentido que estés llegando a este límite con una petición POST ya que creo que el tamaño de los parámetros no afecta.

A ver si alguien puede aportar más información.

0voto

bl4z3r comentado

Estaría bueno saber la estructura de tu div. Lo digo por que si contiene un formulario, podrías serializarlo y, así, reducir el tamaño de la petición.

1 Respuesta

2votos

Leonardo-Tadei Puntos227320

Hola @rach,

las peticiones HTTP tienen varios límites según el mecanismo de envío al servidor.

  • Por GET generalmente es de 1024 bytes, llegando como máximo a 2048 bytes. Esto es el largo total de una peticón puesta en la barra del navegador

  • Por POST, tenés límites puestos por el servidor, por defecto en 8M post_max_size 8M

  • Por FILE para subir archivos, tenés límites puestos por el servidor, por defecto en 8M upload_max_filesize 8M

Podés ver estos límites llamando a la función phpinfo()

Estos límites son modificables por el administrador del servidor.

Lo que no entiendo bien es cómo llegás a tener un DIV de más de 8 Mb... si fuera un textarea, podría ser poque el usuario copie y pego contenido más grande, pero siendo un DIV, significa que lo estás generando vos, en cuyo caso en vez de enviar algo tan grande, bien podrías enviar solo los criterios que arman este DIV y volver a generar el contenido del lado del servidor para no tener la limitación de tamaño.

Saludos cordiales y a restructurar el código!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta