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 に答える