我在服务器端添加了内部错误(抛出异常)。现在,我要在客户端处理此错误。但是,我得到的错误内容未定义。
我正在使用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."}
答案 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;
}
}