He desarrollado una aplicación web PHP. Le estoy dando una opción al usuario para actualizar varios problemas de una sola vez. Al hacerlo, a veces el usuario se encuentra con este error. ¿Hay alguna forma de aumentar la longitud de la URL en apache?
php
apache
http-status-codes
JPro
fuente
fuente
Respuestas:
Bajo Apache, el límite es un valor configurable,
LimitRequestLine
. Cambie este valor a algo más grande que el predeterminado de 8190 si desea admitir un URI de solicitud más largo. El valor está en /etc/apache2/apache2.conf . De lo contrario, agregue una nueva línea (LimitRequestLine 10000
) debajoAccessFileName .htaccess
.Sin embargo, tenga en cuenta que si realmente está llegando a este límite, probablemente esté abusando
GET
para empezar. Debe usarPOST
para transmitir este tipo de datos, especialmente porque incluso admite que los está usando para actualizar valores. Si revisa el enlace anterior, notará que Apache incluso dice "En condiciones normales, el valor predeterminado no debe cambiarse".fuente
POST
. Nada sobre el uso de POST le impide completar el mismo formulario con los campos que se acaban de publicar, por lo que no estoy seguro de lo que quiere decir con eso.LimitRequestLine
en ningún lugar de su archivo httpd.conf, simplemente agregue la línea en cualquier lugar que desee. Por ejemplo:LimitRequestLine 100000
Según la respuesta de John, cambié la solicitud GET a una solicitud POST. Funciona, sin tener que cambiar la configuración del servidor. Así que busqué cómo implementar esto. Las siguientes páginas fueron útiles:
Ejemplo de POST de jQuery Ajax con PHP ( tenga en cuenta el comentario de desinfectar datos publicados) y
http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Básicamente, la diferencia es que la solicitud GET tiene la URL y los parámetros en una cadena y luego envía nulo:
mientras que la solicitud POST envía la URL y los parámetros en comandos separados:
Aquí hay un ejemplo de trabajo:
ajaxPOST.html:
ajaxPOST.php:
Envié más de 12.000 caracteres sin ningún problema.
fuente
Tengo una solución sencilla.
Suponga que su URI tiene una cadena
stringdata
demasiado larga. Simplemente puede dividirlo en varias partes según los límites de su servidor. Luego envíe el primero, en mi caso para escribir un archivo. Luego envíe los siguientes para agregarlos a los datos agregados anteriormente.fuente
Recibí este error después de usar $ .getJSON () de JQuery. Acabo de cambiar para publicar:
fuente
Un extracto del RFC 2616: Protocolo de transferencia de hipertexto - HTTP / 1.1 :
fuente