2012-08-14 37 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