當用戶單擊onclick事件時,我發送加密的敏感數據。此加密數據有時包含加號(+
)當我在服務器上檢索到此請求變量時,+
正在轉換爲空白。這會導致解密失敗。當提交表單onclick時轉義javascript值
例子:
xrUxHtYpO2Yu3Z31ve+KNA==
被轉換爲:
xrUxHtYpO2Yu3Z31ve KNA==
有沒有辦法逃避字符串,它是作爲發送?
當用戶單擊onclick事件時,我發送加密的敏感數據。此加密數據有時包含加號(+
)當我在服務器上檢索到此請求變量時,+
正在轉換爲空白。這會導致解密失敗。當提交表單onclick時轉義javascript值
例子:
xrUxHtYpO2Yu3Z31ve+KNA==
被轉換爲:
xrUxHtYpO2Yu3Z31ve KNA==
有沒有辦法逃避字符串,它是作爲發送?
你要找的功能是「encodeURIComponent方法()」:
var encoded = encodeURIComponent("nasty string");
你不應該需要在所有的服務器端的任何代碼;網頁編碼幾乎肯定會被您的網頁框架隱式地取消。 (編輯 - 啊,如果您使用的是一些Java/JSP Web框架,那麼您絕對不必在服務器端做任何事情)。
嘗試用%2B
替換+
。這來自HTML URL Encoding Reference at W3Schools。希望這可以幫助!
一般概念: http://en.wikipedia.org/wiki/Percent-encoding
如何在JavaScript做: Encode URL in JavaScript?
我會做到這一點,但我認爲這是一個黑客。如果稍後還有其他角色我不知道。我想採取逃生路線 – Omnipresent 2011-05-31 13:57:31
請考慮[避免w3schools](http://w3fools.com)。 – Pointy 2011-05-31 13:57:42
@Omnipresent - 那是真的,你必須知道哪些角色需要事先轉義。但是如果'+'是你唯一的問題,那麼你會被設置! :) – lhan 2011-05-31 14:03:09