2

我正在将一个包含加号 (+) 的字符串从 jsp 页面传递到 servlet,但在 servlet 中,该字符串有空格而不是“+”。

JSP代码:

     var data = {Certificate:"KgAwIBAgIQQ+1b5xQKgN0HfjIAPy+vdjANBg",Id:10043};
     $.ajax({
           type: "POST",
           url: "Assinatura",
           data: 'signStart=' + JSON.stringify(data)
       });

小服务程序代码:

request.getParameter("signStart"); //KgAwIBAgIQQ 1b5xQKgN0HfjIAPy vdjANBg

我知道我可以替换服务器端的空间,但如果有更好的解决方案,我会徘徊。

4

2 回答 2

5

像“+”这样的字符在通过URL时需要编码

于 2013-09-26T14:15:54.440 回答
1

您需要在将字符串传递给 ajax 请求中的 Servlet 时对字符串进行编码。您可以encodeURIComponent为此使用:

$.ajax({
    type: "POST",
    url: "Assinatura",
    data: 'signStart=' + encodeURIComponent(JSON.stringify(data))
});

或者您可以作为对象传递data,而不是字符串:

data: {'signStart': JSON.stringify(data)}
于 2013-09-26T14:19:42.680 回答