javascript - blueimp jquery 文件上传 - "done"、 "complete"回调不适用于 IE 9

标签 javascript jquery file-upload asyncfileupload blueimp

我正在使用 Blueimp Jquery File Upload异步上传文件的插件。它在大多数其他浏览器中运行良好(有一些小问题)——在 IE 上,我看到这个问题,即“完成”、“停止”、“始终”、“完成”和一些其他事件回调没有被调用。

调试时,我在“完成”、“失败”、“始终”中添加了 console.logs,并在 _onSend 函数(在 jquery.fileupload.js 中)中向 ajax 请求添加了“完成”方法 - 但是他们似乎都没有在 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;
            };

[为便于阅读而 trim 的插件代码]

我知道在 IE 9 中,jquery.iframe-transport.js 用于文件上传(因为 IE 不支持 XHR 文件上传)。

我不确定应该如何解决/调试这个问题。

谢谢!

最佳答案

当从服务器返回 json 时,如果响应的内容类型设置为“text/html”或“text/plain”(而不是 application/json),则会触发 done 事件。这仅适用于不支持 XHR 文件上传的浏览器(例如 IE9)以及 blueimp 插件使用 IFrame 传输的浏览器。

插件文档中“Content Negotiation”下的相关信息: https://github.com/blueimp/jQuery-File-Upload/wiki/Setup

关于javascript - blueimp jquery 文件上传 - "done"、 "complete"回调不适用于 IE 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10122165/

相关文章:

python - 使用python重命名服务器上的文件

javascript - 在react中刷新传单 map

javascript - 将字符串的各个部分分组到数组元素中

javascript - 无法弄清楚为什么数组不应该更新?

jquery - Safari 不执行 jQuery 函数

java - 从 PHP 发送到另一个 (Java) Web 服务并检索(图像)结果

php - 移动上传的文件 Faied - php

javascript - 自关闭 .js 切换菜单

javascript - 使用 json 文件中的 `src` 附加 <IMG> 标签,在 html 中显示为文本而不显示照片

javascript - 用户设置下拉菜单