jQuery $ .ajaxError阻止ajax承诺被拒绝

时间:2018-03-19 11:13:02

标签: javascript jquery promise

我有一个带有很多ajax调用的WebApp,所以我做了以下清理工作:

  • 我使用默认值定义了一个ajax调用:

    $.ajaxCall = function (Params){
        return $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",        
            data: Params.data,
            url: Params.url,
        });
    };
    
  • 我定义了一个全局ajax错误处理程序:

    $(document).ajaxError(function( event, xhr, settings, error ) {
    
        if(xhr.hasOwnProperty("responseJSON") 
            && xhr.responseJSON.hasOwnProperty("Message")) {
    
            let data = settings.hasOwnProperty("data") ? JSON.parse(settings.data) : null;
            switch (xhr.responseJSON.Message) {                
              // Handle errors
            }
        }
    });
    

现在我想在某处链接$.ajaxCall返回的承诺(即$.ajax返回的延迟对象的promise对象):

$.ajaxCall({
    url: "WebServices/Workspace_Ajax.asmx/WebMethod",
    data: JSON.stringify(DataObject)
})
.then(successAjax, function() {
    console.log("Rejected, ajax call failed!");
});

then的拒绝处理程序未被调用,而$.ajaxError函数调用良好。我不明白为什么Promise没有被拒绝(对于ajax请求有效的情况,Promise得到了很好的解决)。我错过了什么?

0 个答案:

没有答案