1

我想将 value="name+asc" 放在隐藏字段中。Http方法是Get。

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

但我不能将名称+asc 放在 URL 中。

我该如何处理这个问题。

4

2 回答 2

1

提交表单时,表单输入的值将自动正确编码。在application/x-www-form-urlencoded数据中,+符号代表一个空格,因此浏览器会将其编码为%2B.

如果您想+在数据中提交表单:您拥有的代码很好。

如果要提交数据中包含空格的表单:使用文字空格。浏览器将为您编码。

如果您想使用 JavaScript 读取表单数据并在通过encodeURIComponent方法传递数据时以编程方式构造 URL(或发布请求)。

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 回答
0

据我所知,除非编码为特殊字符,否则 + 会自动拆分您的值。您可以使用 - 或 _ 代替 +。

于 2013-04-04T11:44:19.510 回答