2012-06-22 84 views
2

編碼我想通過Ajax 發送的base64字符串我的編碼是通過JavaScript函數逃脫Base64是不是在阿賈克斯

data = escape"data:image/png;base64,iVBOR w0K+GgoAAAAN+SUhEUgAAAU oAA+ADmCAYAAAC+zgMwkAAAgAElEQ+VR4Xu1de3BVx3n"); 

它worksfine並對其進行編碼,作爲

data%3Aimage/png%3Bbase64%2CiVBOR%20w0K+GgoAAAAN+SUhEUgAAAU%20oAA+ADmCAYAAAC+zgMwkAAAgAElEQ+VR4Xu1de3BVx3n 

但是,當我把它通過ajax

$.ajax({ 
url: 'http://fiveriverstech.com', 
type: 'POST', 
data: "data="+data, 
success: function(response){ 
       console.log(response) 
       } 
      }); 

它取代了+符號白衣白空間 爲data:data:image/png;base64,iVBOR w0K GgoAAAAN SUhEUgAAAU oAA ADmCAYAAAC zgMwkAAAgAElEQ VR4Xu1de3BVx3n

如何防止做到這一點

JS Fiddle

回答

3

你可能想使用encodeURIComponent()而不是escape()escape()不適用於URL和表單數據。

甚至更​​容易將使用

data: { data: 'data:image/png;base64,...' } 
$.ajax()選項

,也懶得進行編碼; jQuery將負責處理所有事情。