簡體   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