javascript - 如何通过ajax发送base64图像

标签 javascript php ajax canvas base64

我是开发 T 恤构造者。当我通过ajax POST方法将base64数据(canvas.toDataUrl())发送到服务器时,我得到带有空格的base64字符串。

例如:

发送:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhsAAAIbCAYAAABCJ1y9AAAgAElEQVR4Xuy9CbCmVXkuur7pn/bcczd00w2INAhBmdQ4EDNpHEi8gVMQcyKpc3NOck3lOKRyokmFUzmHSupgLG9MTFKpeK

获取:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhsAA 
 AIbCAYAAABCJ1y9AAAgAElEQVR4Xuy9CbCmVXkuur7pn/b 
 cczd00w2INAhBmdQ4EDNpHEi8gVMQcyKpc3 NOck3lOKRyokmFUzmH SupgLG9MT   FKpeK

JS代码:

var data = csrfParam + '=' + csrfToken + '&front_base64=' + frontImage
     + '&back_base64=' + backImage + '&product_id=' + currentProduct['id'] 
     + '&color_id=' + currentProductColorId + '&size_id=' + 
     currentProductSize;
 var xhr = new XMLHttpRequest();
 xhr.open('POST', '/constructor/add-to-cart/', true);
 xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 xhr.send(data);
 xhr.onload = function () {console.log(xhr.responseText)}

white spacing screenshot

最佳答案

使用 jquery ajax 它会让你的生活变得更轻松,问题也会得到解决:

$.post('/constructor/add-to-cart/',{
      csrfParam : csrfToken,
      front_base64: frontImage,
      back_base64 : backImage,
      product_id : currentProduct['id'],
      color_id  : currentProductColorId,
      size_id : currentProductSize
    },function(response){
     console.log(response)
    });

如果你想在后端查看base64图像来检查是否正常

<img src="/* base 64 string here */" />

而不是仅仅查看字符串。

关于javascript - 如何通过ajax发送base64图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599205/

相关文章:

javascript - 电源列表的最后一位

javascript - 访问在 socket.io 中发出消息的套接字

php - 基于 MySQL 查询中的 If Else 语句的自定义 CSS

php - 从 PHP Oracle DB 中的不同表检索

php - 错误 : Call to undefined method addAttributeToFilter()

javascript - html从id发送参数到函数

javascript - 使用 Promise.all

javascript - 替代嵌套在另一个表单中的 Ajax 上传表单

php - AJAX JQuery 的问题

javascript - 如何读取 AJAX 响应变量?