我有一堆包含成功和错误条件的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并请求显示更详细的错误消息?
答案 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
如果您不关心特定元素。