简体   繁体   English

在js中使用XMLHTTPREQUEST发送base64图像数据“ POST”

[英]Send base64 image data “POST” using XMLHTTPREQUEST in js

I am trying post base64 data to server but i got one error "Microsoft JScript runtime error: Unable to get value of the property 'addEventListener': object is null or undefined" below i had attached the error screen shot any help thanks. 我正在尝试将base64数据发布到服务器,但是我收到一个错误“ Microsoft JScript运行时错误:无法获取属性'addEventListener'的值:对象为null或未定义”,在下面我附上了错误屏幕快照的任何帮助。

            var imagefile = canvas.toDataURL("image/png");
            imagefile = imagefile.replace("data:image/png;base64,", "");
            var oXHR = new XMLHttpRequest();
            oXHR.upload.addEventListener('loadstart', uploadFinish, false);
            oXHR.upload.addEventListener('progress', uploadProgress, false);
            oXHR.upload.addEventListener('error', uploaderror, false);
            oXHR.open('POST',"http://demo.donelook.com/eyewearweb/levellens.aspx",true);
            oXHR.send(imagefile);

在此处输入图片说明

我想你要:

oXHR.addEventListener('loadstart', uploadFinish, false);

There is a mistake in oXHR.upload.addEventListener , should be oXHR.addEventListener . oXHR.upload.addEventListener有一个错误,应该是oXHR.addEventListener Another problem is addEventListener is not supported by all browsers. 另一个问题是并非所有浏览器都支持addEventListener You have to do something like this if you're using pure javascript. 如果您使用的是纯JavaScript,则必须执行以下操作。

if (!oXHR.addEventListener) {
    oXHR.attachEvent("loadstart", uploadFinish);
}
else {
    oXHR.addEventListener("loadstart", uploadFinish, false);
}

You could write this as a separate function and reuse it to ensure browser compatibility. 您可以将其编写为单独的函数,然后重新使用以确保浏览器的兼容性。 Like this: 像这样:

function addEventListener(element,type, listener, useCapture){
     if (!element.addEventListener) {
        element.attachEvent(type, listener);
     }
     else {
        element.addEventListener(type, listener, useCapture);
     }
}

Your code: 您的代码:

var imagefile = canvas.toDataURL("image/png");
 imagefile = imagefile.replace("data:image/png;base64,", "");
 var oXHR = new XMLHttpRequest();
 addEventListener(oXHR,'loadstart', uploadFinish, false);
 addEventListener(oXHR,'progress', uploadProgress, false);
 addEventListener(oXHR,'error', uploaderror, false);
 oXHR.open('POST',"http://demo.donelook.com/eyewearweb/levellens.aspx",true);
 oXHR.send(imagefile);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM