function uploadFile(resume) {
var fd = new FormData();
fd.append("ad_pic", document.getElementById('ad_pic').files[0]);
fd.append("sectionID","page_top_slider");
fd.append("ad_resume", resume);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("post", "../../BLL/uploadPictureHandler_mgr.ashx");
xhr.send(fd);
}
执行过后文件上传成功,但总是执行abort事件代码,而不是执行正常成功后的load事件。
我跟踪后xhr.readyState == 4 && xhr.status == 0。
但如果有时我跟踪执行,就会正常。请教各位什么原因。
怀疑和异步有关
你调试的时候因为有断点,所以代码执行的时候有延时
直接执行代码因为异步的方法load还没执行完,就要调用about方法,所以会报错
你可以试试同步或者在about方法前面sleep(1000)
方法中的false 就是不采用异步操作,那不就是同步执行嘛,
xhr.addEventListener("load", uploadComplete, false);