Pregunta

Mi servidor java funciona de la siguiente manera:

http://locahost:5555/?search="java"

El enlace de arriba funcionaría bien.Sin embargo, si alguna vez quiero utilizar "#" como parte de la cadena de búsqueda, todo sale mal.Por ejemplo:

http://locahost:5555/?search="c#"

Por alguna razón, todo lo que sigue a "#" se ignora.Si uso la versión decodificada de "#", vuelve a funcionar bien.Por ejemplo:

http://locahost:5555/?search="c%23"

El sistema debería ser utilizado por personas que no entienden la codificación de URL, por lo que nunca pondrían %23 en lugar de #.¿Hay alguna manera de evitarlo?

¿Fue útil?

Solución

El usuario supuestamente no debe acceder directamente a la URL de manera directa si ponen "C #" en la URL no habría ningún proceso, por otro lado, podría usar

<form action="yourcontroller" method="post">

   <input type="text" name="txtSearch" />

   <input type="submit" value="search"/>

</form> 

Con esto, se encargará de los personajes especiales como "#" que mencionó.

No olvides captar el parámetro en su controlador

request.getParamter("txtSearch");

Otros consejos

Aparte de codificarlo, no hay otra forma de evitarlo.Más sobre la cuerda después # trata como el location de la URL.

cadena después # no se pasará al servidor a través de parámetros GET.Utilice el método POST en su lugar.

https://developer.mozilla.org/en-US/docs/Web/API/Window.location

Está en el navegador.El servidor nunca obtiene una solicitud con el símbolo de hashtag (#), justo hasta el símbolo.

Una solución de javascript es probablemente una mala idea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top