我正在传递一个包含加号(+)的字符串,从jsp页面到servlet,但在servlet中,字符串有空格而不是“+”。
JSP代码:
var data = {Certificate:"KgAwIBAgIQQ+1b5xQKgN0HfjIAPy+vdjANBg",Id:10043};
$.ajax({
type: "POST",
url: "Assinatura",
data: 'signStart=' + JSON.stringify(data)
});
Servlet代码:
request.getParameter("signStart"); //KgAwIBAgIQQ 1b5xQKgN0HfjIAPy vdjANBg
我知道我可以替换服务器端的空间,但是如果有更好的解决方案就会徘徊。
答案 0 :(得分:5)
通过URL
时,需要对“+”等字符进行编码答案 1 :(得分:1)
您需要在将字符串传递给ajax请求中的Servlet时对其进行编码。您可以使用encodeURIComponent
:
$.ajax({
type: "POST",
url: "Assinatura",
data: 'signStart=' + encodeURIComponent(JSON.stringify(data))
});
或者您可以将data
作为Object传递,而不是String:
data: {'signStart': JSON.stringify(data)}