jquery Ajax $ .ajaxError

Phi*_*enn 4 jquery

我有一堆包含成功和错误条件的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');
        }
    });
Run Code Online (Sandbox Code Playgroud)

所有错误条件都相同.换句话说,他们都在msg id中加上短语"连接错误".

Q1:我可以删除所有这些并替换它们

$().ajaxError(function(myEvent, request, settings, thrownError) {
    $('#msg').text('Connection error').addClass('err');
});
Run Code Online (Sandbox Code Playgroud)

Q2:您将如何使用myEvent并请求显示更具信息性的错误消息?

Nic*_*ver 6

Q1.你可以.ajaxError()像这样使用:

$(document).ajaxError(function() {
  $('#msg').text('Connection error').addClass('err');
});
Run Code Online (Sandbox Code Playgroud)

...或者如果#msg元素一直存在,你可以这样做:

$('#msg').ajaxError(function() {
  $(this).text('Connection error').addClass('err');
});
Run Code Online (Sandbox Code Playgroud)

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);
});
Run Code Online (Sandbox Code Playgroud)

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