我有一堆包含成功和错误条件的 ajax 调用,如下所示:

    $.ajax({
        url: 'Remote/State.cfc'
        ,type: "POST"
        ,data: {
            'method': 'UpdateStateName'
            ,'StateID': StateID
            ,'StateName': StateName
        }
        ,success: function(result){
            if (isNaN(result)) {
                $('#msg').text(result).addClass('err');
            } else {
                $('#' + result + ' input[name="StateName"]').addClass('changed');
            };
        }
        ,error: function(msg){
            $('#msg').text('Connection error').addClass('err');
        }
    });

所有错误条件都相同。换句话说,他们都在 msg id 中放置了短语“连接错误”。

Q1:我可以删除所有这些并将它们替换为
$().ajaxError(function(myEvent, request, settings, thrownError) {
    $('#msg').text('Connection error').addClass('err');
});

Q2:您将如何使用 myEvent 和 request 来显示更多信息性错误消息?

最佳答案

一季度。您可以像这样使用 .ajaxError() :

$(document).ajaxError(function() {
  $('#msg').text('Connection error').addClass('err');
});

...或者如果 #msg 元素一直存在,你可以这样做:
$('#msg').ajaxError(function() {
  $(this).text('Connection error').addClass('err');
});

Q2。您可以使用 ajaxError 传入的处理程序参数,它使用以下格式:handler(event, XMLHttpRequest, ajaxOptions, thrownError) ,像这样:
$(document).ajaxError(function(event, request, options, error) {
  $('#msg').addClass('err')
     .text('Connection error: ' + error + ' when connecting to ' + options.url);
});

注意:在以前的 jQuery 版本中,这将通过 $.ajaxError() 完成,因为 1.7 不再是这种情况,您需要将其附加到您想要的 jQuery 对象,或者 document 如果您不关心特定元素.

关于jquery Ajax $.ajaxError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2587262/

10-09 17:50