首页 新闻 搜索 专区 学院

xmlHttpRequest上传文件问题

0
悬赏园豆:5 [已关闭问题] 关闭于 2016-04-26 14:37

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。

但如果有时我跟踪执行,就会正常。请教各位什么原因。

小小财经的主页 小小财经 | 初学一级 | 园豆:1
提问于:2016-01-09 11:00
< >
分享
所有回答(1)
0

怀疑和异步有关

你调试的时候因为有断点,所以代码执行的时候有延时

直接执行代码因为异步的方法load还没执行完,就要调用about方法,所以会报错

你可以试试同步或者在about方法前面sleep(1000)

紫炎 | 园豆:106 (初学一级) | 2016-01-13 15:45

方法中的false 就是不采用异步操作,那不就是同步执行嘛,

xhr.addEventListener("load", uploadComplete, false);

支持(0) 反对(0) 小小财经 | 园豆:1 (初学一级) | 2016-01-13 20:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册