2012-08-14 36 views
2

我使用jQuery的AJAX命令,它具有以下数据:如何请求发送特殊字符的servlets

$.ajax({ 
type:"POST", 
... 
data:"e=f_s&es="+JSON.stringify(email)+"&fr="+str 
... 
}) 

哪里(电子邮件),可以包含特殊字符,例如,它可以是一个字符串:

!#$%'&+-/=?^`*{|}~ch!#$%'/=?*^`{|}@mail.com 

我之所以允许这样的人物,是基于以下question.

的问题是,在服务器(Java EE应用程序)在某些时候,它是 搞乱。特殊字符没有显示不同请求参数的边界。例如,它正在考虑:

'/

作为参数。
我想我需要转义字符? (如果是的话,怎么样?)

我该怎么做才能发送这样的字符串从javascriptjava

+0

我也有过类似的问题,请参阅我的答案在这里:http://stackoverflow.com/a/34345900/1864614 – razvang 2015-12-18 11:55:55

回答

3

使用encodeURIComponent

encodeURIComponent("!#$%'&+-/=?^`*{|}~ch!#$%'/=?*^`{|}@mail.com") 

返回:

"!%23%24%25'%26%2B-%2F%3D%3F%5E%60*%7B%7C%7D~ch!%23%24%25'%2F%3D%3F*%5E%60%7B%7C%7D%40mail.com" 
+0

谢谢很多作品像魅力 – shadesco 2012-08-14 20:08:29