繁体   English   中英

Ajax:错误回调未触发

[英]Ajax: error callback not firing

当我将错误函数作为函数中的对象参数传递时,我无法调用错误回调。 但是,当我在ajax代码中声明它时,它可以工作。

var ajaxSettings = new Object(); 
    ajaxSettings.error = function(request, status, error){ console.log('bad failure');};
    ajaxSettings.success = function(result) { console.log('good success');};
    uploadFile(contents, ajaxSettings)

function uploadFile(contents, settings) {
    $.ajax({
        url: uri,
        type: "PUT",
        data: contents,
        processData: false,
        dataType: "json",
        success: settings.success,
        error: settings.error
    });
}

在这种情况下,不会触发错误回调。 但是,如果我在ajax代码中编写错误函数声明,它将起作用。

function uploadFile (contents, settings) {
    $.ajax({
        url: uri,
        type: "PUT",
        data: contents,
        processData: false,
        dataType: "json",
        success: settings.success,
        error: function(request, status, error) { console.log('bad failure'); },
    });
}

我还尝试了使success: settings.error ,成功时它将调用该函数。 错误回调未得到调用的原因是什么?

我用你的代码创建了一个小提琴

您应该在使用之前初始化ajaxSettings

尝试如下声明您的回调:

var ajaxSettings = {}
ajaxSettings.error = function(request, status, error){ console.log('bad failure');};
ajaxSettings.success = function(result) { console.log('good success');};

...,因为它们可能在“ uploadFile”功能范围内不可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM