如何获取(处理)Ajax中的错误(不可接受和内部服务器错误)异常内容

时间:2019-02-11 10:03:42

标签: ajax

我在服务器端添加了内部错误(抛出异常)。现在,我要在客户端处理此错误。但是,我得到的错误内容未定义。

我正在使用Postman,并且看到我的响应是JSON格式,它的响应参数如“ Message”。我尝试解析JSON,然后再次得到@Value

Ajax函数的定义如下:

Cannot read property 'Message' of undefined

}

我在代码中使用了此函数,像这样的错误部分,如何在此函数中获取异常内容?

function Ajax(url, method,  json, successFunction, errorFunction, skipErrorDlg) {
$.ajax({
    url: url,
    data: json,
    type: method,
    contentType: 'application/json',
    beforeSend: function (xhr) {
        xhr.setRequestHeader('Authorization', GlobalAuthToken);
    },
    processData: false,
    dataType: 'json',
    success: function (data) {
        successFunction(data);
    },
    error: function(event, jqxhr, settings, thrownError) {
        if (errorFunction != null) {
            errorFunction();
        }
    }
});

邮递员结果:

function(event, jqxhr, settings, thrownError)
            {           
                alert("ERROR HAPPENED");
                var responseString = JSON.stringify(event);
                alert(responseString.Message);
                alert("event" + event.Message);

            },

预期结果应为:{ "Message": "Please select corresponding template."}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,如果您遇到这种问题,请尝试如下操作:

function showAjaxError(event, jqxhr, settings, thrownError) {
    var msg = "";
    if (event.hasOwnProperty('responseJSON')) {
        var resp = event['responseJSON'];
        msg = (resp && resp.hasOwnProperty('Message')) ? resp.Message : "";
        msg = msg + ((resp && resp.hasOwnProperty('ExceptionMessage')) ? "\n\n" + resp.ExceptionMessage : "");
        if (resp && resp.hasOwnProperty('InnerException')) {
            msg = msg + ((resp && resp.InnerException.hasOwnProperty('ExceptionMessage')) ? "\n\n" + resp.InnerException.ExceptionMessage : "");
        }
    } else {
        msg = event.responseText;
    }
}