1

サーバーにbase64データを投稿しようとしていますが、「Microsoft JScriptランタイムエラー: プロパティ 'addEventListener'の値を取得できません: オブジェクトがnullまたは未定義です」というエラーが1つ表示されました.

            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);

ここに画像の説明を入力

4

2 に答える 2

1

に誤りがoXHR.upload.addEventListenerあるはずですoXHR.addEventListener。もう 1 つの問題はaddEventListener、すべてのブラウザーでサポートされていないことです。純粋な JavaScript を使用している場合は、次のようにする必要があります。

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

これを別の関数として記述し、再利用してブラウザの互換性を確保できます。このような:

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

あなたのコード:

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);
于 2013-06-29T05:33:35.647 に答える
0

私はあなたが欲しいと思います:

oXHR.addEventListener('loadstart', uploadFinish, false);
于 2013-06-29T05:28:14.857 に答える