0

在我的页面中,我使用 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" ) %>';
        }
    }
});

}

4

2 回答 2

2
$.ajaxError(function myErrorHandler(e, xhr, options, thrownError) {
  alert("Ajax error!");
});

应该成功。

于 2012-10-16T12:07:07.080 回答
0

希望我能理解你的问题...

当您调用 JQuery'sajax时,您将传入一个具有多个属性的对象。这些属性之一是error。JQuery 期望将一个函数分配给该属性。您提供了一个匿名函数,但没有理由 this 不能改为对函数的引用。

因此,您可以在脚本的其他地方定义一个函数,如下所示:

function handleError(xhr, ajaxOptions, thrownError) {
   if (xhr.status == 403) {
      window.location.href = '<%: Url.Action( "SessionExpire", "Home" ) %>';
   }
}

然后在你的ajax调用中,引用这个:

$.ajax({
    cache: false,
    // etc...
    error: handleError
});
于 2012-10-16T11:01:06.677 回答