Transmisión de variables en links

Querría saber si alguien pudiera contestar a la siguiente pregunta: En una página web en asp que he estado haciendo, me encontré con que había un límite de caracteres en la transmisión de variables y sus resultados por un link. Me pasa con uno parecido a este:
<a href="mensajes.asp?titulo=<%=titulo%>&login=<%=login%>&avatar=<%=avatar%>&tema=<%=tema%>">
Al clicar, se comía caracteres. Por eso me pregunto si hay alguna forma de solucionarlo o es que simplemente soy yo que he hecho algo mal, que también podría ser :).

1 respuesta

Respuesta
1
A la hora de enviar variables entre páginas web existen dos métodos (GET y POST), el método GET es el que utilizas tú, en el que las variables van después de la URL, pero tiene inconvenientes, se ve en todo momento la información que se está enviando y está limitado, ya que una dirección URL completa tiene un límite de 255 caracteres.
El otro método (POST) permite enviar más datos y de una manera 'invisible', ya que los datos se colocan en el header de la petición, pero a su vez es algo más complicado de tratar, ya que no puedes enviar la información montando las cadenas URL tal y como lo haces, deberás crear un formulario y vía JavaScript modificar los valores y enviarlo.
Diferencias de código entre GET y POST:
GET:
<form name="Form1" method="GET">
<input type="text" name="Nombre" value="Valor">
<input type="submit">
</form>
<%
Variable = request.querystring("Nombre")%>
POST:
<form name="Form1" method="POST">
<input type="text" name="Nombre" value="Valor">
<input type="submit">
</form>
<%
Variable = request.form("Nombre")%>
Espero te sirva de ayuda, si deseas enviar más información a una página ASP y el método GET se queda corto te queda el POST, que es el que deberás usar en la página que estás haciendo.
Muchísimas gracias por contestar, me ha quedado más o menos claro excepto en un detalle... ¿Siempre tengo que estar limitado a los 255 caracteres de una URL? ¿O lo que quieres decir es que si utilizo el método POST en el Form la URL no tendrá esa limitación?
Muchísimas gracias otra vez!
Si utilizas el método POST, las variables no están en la dirección URL, con lo que no estás limitado, porque se añaden a la petición.
Si utilizas el método get, el explorador enviará una petición como esta:
GET http://servidor.com/pagina.asp?variable1=manzana&variable2=tomate HTTP/1.1
Accept: */*
Accept-Language: es
(Etc.)
Y una petición POST es:
POST http://servidor.com/pagina.asp HTTP/1.1
Accept: */*
Accept-Language: es
(...)
variable1=manzana
variable2=tomate
(Y así sucesivamente iría llenando la petición con tantas variables como fuera necesario)
Espero que con esta última aclaración te haya quedado clara la diferencia entre los dos métodos.
El límite de una dirección URL es de 255 caracteres, pero como el método POST no coloca las variables en la URL pues te saltas tal límite.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas