2

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

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

其中 (email) 可以包含特殊字符,例如可以是字符串:

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

我允许这些字符的原因是基于以下 问题。

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

'/

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

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

4

1 回答 1

3

Use encodeURIComponent:

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

returning:

"!%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"
于 2012-08-14T19:33:25.413 回答