我正在使用Blueimp Jquery File Upload插件来异步上传文件。它在大多数其他浏览器中运行良好(有一些小问题) - 在 IE 上,我看到“完成”、“停止”、“始终”、“完成”和其他一些事件回调没有被调用的问题。
在调试时,我在“done”、“fail”、“always”中添加了 console.logs,并在 _onSend 函数(在 jquery.fileupload.js 中)中向 ajax 请求添加了“complete”方法 - 但没有一个似乎在 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;
};
[为了可读性而修剪的插件代码]
我知道在 IE 9 中,jquery.iframe-transport.js 用于文件上传(因为 IE 不支持 XHR 文件上传)。
我不确定我应该如何修复/调试这个问题。
谢谢!