質問
My Java Serverは次のように機能します。
http://locahost:5555/?search="java"
.
上記のリンクはうまく機能します。ただし、検索文字列の一部として「#」を使用したい場合は、すべてが間違っています。例えば:
http://locahost:5555/?search="c#"
.
何らかの理由で "#"の後のすべてが無視されます。「#」の復号版を使うならば、それはまたうまく機能します。例えば:
http://locahost:5555/?search="c%23"
.
システムは、URLエンコーディングを理解していない人が使用する必要があります。その周りにはありますか?
解決
ユーザーは、URLに「C#」を入力してもURLに直接アクセスしないでください。一方でプロセスがない場合は
を使用できます。<form action="yourcontroller" method="post">
<input type="text" name="txtSearch" />
<input type="submit" value="search"/>
</form>
.
これを使って、それはあなたが言及した「#」のような特殊文字の世話をするでしょう。
コントローラ内のパラメータをキャッチすることを忘れないでください
request.getParamter("txtSearch");
. 他のヒント
エンコード以外のものはその周りにはありません。#
の後の文字列を超えて、URLのlocation
として扱います。
#
の後の文字列は、GETパラメータを介してサーバーに渡されません。代わりにPOSTメソッドを使用してください。
https://developer.mozilla.org/en-us / docs / web / api / window.location
ブラウザにあります。サーバーは、Symbolまでのhashtag(#)のシンボルで要求を受けることはありません。
JavaScript回避策はおそらく悪い考えです。
所属していません StackOverflow