我对其他Web API进行了以下Ajax调用: -
$.ajax({
url: "/********/getbytitle('****')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: JSON.stringify(item),
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
if(data.d != null){
//code goes here..
}
},
error: function (data) {
alert(data.error.message.value);
$("#customloader").hide();
}
});
在error
部分内部,我想使用alert(data.error.message.value);
捕获错误消息值,但我在浏览器控制台中收到以下错误: -
data.error.message.value is undefined!!
虽然JSON对象具有以下格式: -
现在如上图所示,如果用户未获得授权,则会返回错误。当收到未经授权的请求时,我们的应用程序将显示用户名/密码对话框..但我想在用户名/密码对话框旁边显示警告,其中包含json错误消息..
答案 0 :(得分:2)
问题是因为error
处理程序的第一个参数是XHR对象,而不是解析的JSON响应。
要根据需要使其工作,您需要自己从XHR获取responseText
并手动解析它,然后再尝试阅读value
属性。试试这个:
error: function(xhr) {
var data = JSON.parse(xhr.responseText);
console.log(data.error.message.value);
$("#customloader").hide();
}