在我的页面中,我使用8 ajax调用...
将数据发送到服务器端我不想为每个ajax调用处理ajax错误......
单个ajax错误处理整个页面中的所有ajax错误....
是他们对整个页面的任何继承都是可能的。
function SendConfirmationEmail(ShipmentID, ChannelOrderReference) {
var Url = '<%=Url.Action("SendShipmentEmail","Shipments") %>';
$.ajax({
cache: false,
type: "POST",
data: 'strOrderShipmentId=' + ShipmentID + '&channelOrderReference=' + ChannelOrderReference,
url: Url,
datatype: "HTML",
success: function (data) {
if (data == "1") {
SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'Email is successfully sent for Order#' + ChannelOrderReference + '');
}
if (data == "-2") {
SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'Email Template is not Choosen for this Store');
}
if (data == "-1") {
SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'Problem in Sending Email for Order#' + ChannelOrderReference + '');
}
if (data == "0") {
SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'Connection Failed to Send Email for Order# ' + ChannelOrderReference + '');
}
if (data == "-3") {
SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'ShipTo Email Address is Not Given for Order# ' + ChannelOrderReference + '');
}
// SucessErrorMessageDisplay('DivStatus', 'lblStatus', 'imgStatus', 0, 'Order# :' + ChannelOrderReference + ' is voided successfully');
},
error: function (xhr, ajaxOptions, thrownError) {
if (xhr.status == 403) {
window.location.href = '<%: Url.Action( "SessionExpire", "Home" ) %>';
}
}
});
}
答案 0 :(得分:2)
$.ajaxError(function myErrorHandler(e, xhr, options, thrownError) {
alert("Ajax error!");
});
应该成功。
答案 1 :(得分:0)
希望我理解你的问题......
当你调用JQuery的ajax
时,你传递的是一个具有多个属性的对象。其中一个属性是error
。 JQuery期望将一个函数分配给此属性。你提供了一个匿名函数,但是没有理由不能将它作为对函数的引用。
所以你可以在脚本的其他地方定义一个函数:
function handleError(xhr, ajaxOptions, thrownError) {
if (xhr.status == 403) {
window.location.href = '<%: Url.Action( "SessionExpire", "Home" ) %>';
}
}
然后在你的ajax调用中,引用它:
$.ajax({
cache: false,
// etc...
error: handleError
});