jquery Ajax $ .ajaxError

时间:2010-04-06 18:19:43

标签: 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');
        }
    });

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

Q1:我可以删除所有这些并用

替换它们
$().ajaxError(function(myEvent, request, settings, thrownError) {
    $('#msg').text('Connection error').addClass('err');
});

Q2:您如何使用myEvent并请求显示更详细的错误消息?

1 个答案:

答案 0 :(得分:6)

Q1。您可以像这样使用.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对象上on,或document如果您不关心特定元素。