1

value="name+asc" を非表示フィールドに入れたい。HTTP メソッドは Get です。

<input type="hidden" value="name+asc" name="sort" />

しかし、URL に name+asc を入れることはできません。

どうすればその問題を処理できますか。

4

2 に答える 2

1

フォーム入力の値は、フォームが送信されると自動的に正しくエンコードされます。application/x-www-form-urlencodedデータでは、記号+はスペースを表すため、ブラウザーはそれを としてエンコードし%2Bます。

データを含むフォームを送信する+場合: 持っているコードは問題ありません。

データにスペースを含むフォームを送信する場合: リテラル スペースを使用します。ブラウザはそれをエンコードします。

メソッドを介してデータを渡すときに、JavaScript でフォーム データを読み取り、プログラムで URL (またはポスト リクエスト) を作成するencodeURIComponent場合。

var value = "123+456";
var encodedValue = encodeURIComponent(value);
var url = "http://example.com/?query=" + encodedValue;

手動で URI を作成する場合 (たとえば、HREF 属性に貼り付けるため)、エンコードされた値をどこかで検索する必要があります。ターミナルで node.js を実行する傾向があるため、すばやく入力できencodeURIComponent('a string literal');ます。

于 2013-04-04T11:48:25.307 に答える