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