我正在使用Blueimp Jquery File Upload插件进行文件异步上传。除了一些小问题外,在大多数其他浏览器中都运行良好,但是在IE中,我遇到了这个问题:无法调用“done”,“stop”,“always”,“complete”和一些其他事件回调函数。
在调试时,我在“done”,“fail”,“always”中添加了console.logs,还在_onSend函数中的ajax请求中添加了“complete”方法(在jquery.fileupload.js中)- 但似乎在IE中没有任何一个方法被调用。
_onSend: function (e, data) {
var that = this,
jqXHR,
slot,
pipe,
options = that._getAJAXSettings(data),
send = function (resolve, args) {
that._sending += 1;
jqXHR = jqXHR || (
(resolve !== false &&
that._trigger('send', e, options) !== false &&
(that._chunkedUpload(options) || $.ajax(options))) ||
that._getXHRPromise(false, options.context, args)
).complete(function (result, textStatus, jqXHR) {
console.log("complete");
}).done(function (result, textStatus, jqXHR) {
console.log("done", result);
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("fail", result);
}).always(function (a1, a2, a3) {
console.log("done", result);
}
});
return jqXHR;
};
[为了便于阅读,插件代码已经被删减]
我知道在IE9中,使用jquery.iframe-transport.js进行文件上传(因为IE不支持XHR文件上传)。
我不确定应该如何解决/调试这个问题。
谢谢!
done
回调也会被调用。https://github.com/blueimp/jQuery-File-Upload/wiki/Options#done - Epoc