Javascript PNG数据Url在使用Ajax发送后损坏
我想用Ajax向我的PHP脚本发送一个PNG数据Url,但客户端的Url与我用PHP收到的不一样Javascript PNG数据Url在使用Ajax发送后损坏,javascript,json,ajax,encoding,digital-signature,Javascript,Json,Ajax,Encoding,Digital Signature,我想用Ajax向我的PHP脚本发送一个PNG数据Url,但客户端的Url与我用PHP收到的不一样 $.ajax({ url: "proceed.php", type: "post", data: "signature=" + signaturePad.toDataURL('image/png'), error: function(e) { alert("ERROR"); console
$.ajax({
url: "proceed.php",
type: "post",
data: "signature=" + signaturePad.toDataURL('image/png'),
error: function(e) {
alert("ERROR");
console.log(e);
},
success: function(e) {
alert(e);
}
});
我想它在发送时被损坏了-可能是编码问题
我已经尝试过用JSON对URL进行编码,但问题是一样的
data: "singature=" + JSON.stringify(signaturePad.toDataURL("image/png")
我猜想您正在使用HTML5的
canvas.toDataUrl()
您的图像数据不同,因为您发送的不是实际图像,而是在站点上绘制的图像的数据
由于浏览器正在丢弃不必要的数据,并且(可能)只保留RGBA和大小信息,因此您收到的图像被“损坏”是可以理解的。文档还指出,图像分辨率始终仅为96 dpi
使用URI组件传输“二进制数据”(这些引号应该很大)也可能会出现问题。如上所述,URI组件似乎并没有设置下限或上限。我建议仅在小图像(约40x40px)的情况下使用此技术
请参阅如何通过jQuery的$.ajax()
尝试encodeURI(uri)
。