5

我正在尝试将特殊字符作为 url 中的查询字符串作为 GET 请求的一部分传递。我正在 javascript 函数中构造该字符串。

var queryString = "list=ABC-48+12&level=first";

然后我将字符串附加到 url 作为请求的一部分,该请求将发送到 struts 操作类。在动作类中,我得到的“列表”值为"ABC-48 12",该"+"字符未通过。如何将字符串中的特殊字符作为 url 的一部分传递并返回 java 类?

请告诉我。

谢谢。

4

2 回答 2

12

您应该使用以下encodeURIComponent函数对其进行 url 编码:

var queryString = 
    "list=" + encodeURIComponent("ABC-48+12") + 
    "&level=" + encodeURIComponent("first");

此函数将负责正确编码您的查询字符串参数值:

list=ABC-48%2B12&level=first 
于 2013-06-16T09:36:41.670 回答
-3

您需要使用将全局选项设置为第一个参数的正则表达式而不是字符串:(在正则表达式中,“+”是一个特殊字符,因此我们必须使用反斜杠对其进行转义。)

safeQueryString = safeQueryString.replace(/+/g, '%2B');

于 2013-06-16T09:40:52.843 回答