Verwendung von # in der URL als Wertschlüssel
-
02-01-2020 - |
Frage
Mein Java-Server funktioniert wie folgt:
http://locahost:5555/?search="java"
Der obige Link würde gut funktionieren.Wenn ich jedoch jemals „#“ als Teil der Suchzeichenfolge verwenden möchte, geht alles schief.Zum Beispiel:
http://locahost:5555/?search="c#"
Aus irgendeinem Grund wird alles nach „#“ ignoriert.Wenn ich die entschlüsselte Version von „#“ verwende, funktioniert es wieder einwandfrei.Zum Beispiel:
http://locahost:5555/?search="c%23"
Das System sollte von Personen verwendet werden, die sich mit der URL-Kodierung nicht auskennen, sodass sie niemals %23 anstelle von # eingeben würden.Gibt es überhaupt etwas drumherum?
Lösung
Der Benutzer sollte angeblich nicht direkt auf die URL zugreifen, wenn sie "c #" in die URL einfügen, dass es keinen Prozess gibt, andererseits Sie können Sie verwenden
generasacodicetagpre.damit kümmert es sich um die Sonderzeichen wie "#", die Sie erwähnt haben.
Vergessen Sie nicht, den Parameter in Ihrem Controller zu fangen
generasacodicetagpre.Andere Tipps
Außer es zu kodieren, führt kein Weg daran vorbei.Mehr über die Zeichenfolge danach #
behandelt als die location
der URL.
String danach #
wird nicht über GET-Parameter an den Server übergeben.Verwenden Sie stattdessen die POST-Methode.
https://developer.mozilla.org/en-US/docs/Web/API/Window.location
Es ist im Browser.Der Server erhält nie eine Anforderung mit dem Hashtag-Symbol (#), nur bis zum Symbol.
Eine Javascript-Problemumgehung ist wahrscheinlich eine schlechte Idee.