2011-05-31 42 views
1

當用戶單擊onclick事件時,我發送加密的敏感數據。此加密數據有時包含加號(+)當我在服務器上檢索到此請求變量時,+正在轉換爲空白。這會導致解密失敗。當提交表單onclick時轉義javascript值

例子:

xrUxHtYpO2Yu3Z31ve+KNA== 

被轉換爲:

xrUxHtYpO2Yu3Z31ve KNA== 

有沒有辦法逃避字符串,它是作爲發送?

回答

4

你要找的功能是「encodeURIComponent方法()」:

var encoded = encodeURIComponent("nasty string"); 

你不應該需要在所有的服務器端的任何代碼;網頁編碼幾乎肯定會被您的網頁框架隱式地取消。 (編輯 - 啊,如果您使用的是一些Java/JSP Web框架,那麼您絕對不必在服務器端做任何事情)。

2

嘗試用%2B替換+。這來自HTML URL Encoding Reference at W3Schools。希望這可以幫助!

+0

我會做到這一點,但我認爲這是一個黑客。如果稍後還有其他角色我不知道。我想採取逃生路線 – Omnipresent 2011-05-31 13:57:31

+0

請考慮[避免w3schools](http://w3fools.com)。 – Pointy 2011-05-31 13:57:42

+0

@Omnipresent - 那是真的,你必須知道哪些角色需要事先轉義。但是如果'+'是你唯一的問題,那麼你會被設置! :) – lhan 2011-05-31 14:03:09