2

我想通过 ajax 发送 base64 字符串我通过 JavaScript 函数转义对其进行编码

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

它工作正常并将其编码为

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小提琴

4

1 回答 1

3

您可能想使用encodeURIComponent()而不是escape(). escape()不适用于 URL 和表单数据。

更容易使用

data: { data: 'data:image/png;base64,...' }

在您的$.ajax()选择中,无需费心对其进行编码;jQuery 会处理一切。

于 2012-06-22T08:29:41.703 回答