jQuery文件上传插件 - 在IE中未触发的失败回调< 10

时间:2014-01-17 02:48:23

标签: jquery iframe callback jquery-file-upload

我正在使用https://github.com/blueimp/jQuery-File-Upload

它在现代浏览器中使用XHR文件上传,在oldIEs中使用隐藏的iframe上传(8,9)。

当文件验证失败时,服务器返回4xx状态代码(错误/失败)。

$('#fileupload').fileupload({
    url: url,
    dataType: 'json',
    done: function (e, data) {
       console.log("done")
    },
    fail: function (e, data) {
       console.log("fail")
    }
})

然而,在oldIE中,即使我发送4xx状态代码,也会调用完成回调。 有没有办法让它调用失败回调(https://github.com/blueimp/jQuery-File-Upload/wiki/Options#fail)并读取响应正文或状态代码?

我认为可能需要使用隐藏的iframe方法上传文件,但我在文档中找不到任何特定内容。

1 个答案:

答案 0 :(得分:4)

我应该检查Frequently Asked Questions

// By default, the iFrame Transport handles all responses as success,
// so we override the iFrame to JSON converter to handle error responses:

$.ajaxSetup({
    converters: {
    'iframe json': function (iframe) {
        var result = iframe && $.parseJSON($(iframe[0].body).text());
        if (result.error) {
            // Handling JSON responses with error property:
            // {"error": "Upload failed"}
            throw result.error;
        }
        return result;
    }
  }
});