質問

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回避策はおそらく悪い考えです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top