我正在使用jQuery ajax命令,该命令具有以下数据:

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


其中(电子邮件)可以包含特殊字符,例如,可以是字符串:

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


我允许使用此类字符的原因基于以下question.

问题是,在服务器(Java EE应用程序)上的某个时刻,它搞砸了。特殊字符未显示不同请求参数的边界。例如,它正在考虑:'/作为参数。
我想我需要逃脱角色吗? (如果是,如何?)

我应该怎么做才能将这样的字符串从javascript发送到java?

最佳答案

使用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"

10-06 05:33
查看更多