首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery-File-Upload:处理服务器错误

jQuery-File-Upload:处理服务器错误
EN

Stack Overflow用户
提问于 2014-04-12 01:35:01
回答 2查看 7.1K关注 0票数 5

我正在尝试为blueimp的jQuery-File-Upload实现错误处理。对于错误很容易实现,我可以在服务器上捕获这些错误,并将其包装到JSON对象中。但是,如果服务器出现PHP错误,并且消息显示为standard-PHP-message怎么办?我试着用失败回调来处理它:

代码语言:javascript
复制
jQuery('#fileupload').fileupload({
    fail: function (ev, data) {
        if (data.jqXHR) {
            alert('Server-error:\n\n' + data.jqXHR.responseText); 
        }
    }, 
    otherOptions
});

它正在工作,但是如果我按下取消按钮来删除图像,回调也会被触发。因此,我添加了if和data.jqXHR,以便区分服务器错误和按下取消按钮。但是,如果按下了cancel-按钮,图像将不再从列表中删除。

你知道如何为意外的服务器错误实现这样的错误处理吗?

谢谢,本

EN

回答 2

Stack Overflow用户

发布于 2014-04-12 19:50:58

我找到了答案。我需要使用

代码语言:javascript
复制
.bind('fileuploadfail', function (e, data) {

而不是直接重写失败函数。

票数 2
EN

Stack Overflow用户

发布于 2014-11-17 02:09:10

发问者提供的答案对我不起作用。我使用了一个变量来指示故障是否由用户触发。

代码语言:javascript
复制
add: function (e, data) {
        if (data.autoUpload || (data.autoUpload !== false && $(this).fileupload('option', 'autoUpload'))) {
            $.each(data.files, function (index, file) {
                // UPLOAD INDICATOR
                // file heading
                single_upload = "<b class='file_upload'>"+file.name+"</b>";
                // cancel btn
                single_upload += "<a class='remove_upload'> || Cancel!</a>";
                // contain
                single_upload = "<div class='upload'>"+single_upload+"</div>";
                // create and display node related to specific upload
                data.context = $(single_upload).appendTo(document.body);

                // CANCEL BTN LISTENER
                $(data.context).find(".remove_upload").click(function() {
                    // prevent displaying of server error
                    // (prevent fileupload "fail" event trigger)
                    fileupload_userCancelledUpload = true;
                    jqXHR.abort();
                    data.context.remove();
                })
            });
            var jqXHR;
            data.process().done(function () {
                jqXHR = data.submit();
            });
        }
    },

fail: function (e, data) {
        if (!fileupload_userCancelledUpload) {
            // catches server errors (not validation errors), such as 413
            handleUploadFailure(data.context, " Server error: "+$(data.jqXHR.responseText).filter("title").text());
        }
        fileupload_userCancelledUpload = false;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23019105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档