我从服务器返回的JSON如下所示:
{
"fieldErrors": [{
"name": "content",
"status": "The file 2015 Shift Schedule.xlsx exceeds the maximum file size: 51200 bytes."
}]
}
使用Ajax我需要提取状态值。
这是我到目前为止所做的,但它并没有给我我想要的东西:
$.ajax({
url: '../jsp/uploadfiletodb.jsp',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
//handle any fieldErrors
var json_obj = $.parseJSON(returndata); //parse JSON
$.each(json_obj, function(key,value) {
alert(value.fieldErrors.status);
});
}
它一直告诉我" TypeError:value.fieldErrors未定义"。如何访问状态值?
答案 0 :(得分:1)
您尝试循环的不是数组。 是对象。请改用:
$.ajax({
url: '../jsp/uploadfiletodb.jsp',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
//handle any fieldErrors
var json_obj = $.parseJSON(returndata); //parse JSON
// You are not iterating a loop.
alert(json_obj.fieldErrors[0].status);
}
});
或者如果您想循环错误,那么您需要使用:
$.ajax({
url: '../jsp/uploadfiletodb.jsp',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
//handle any fieldErrors
var json_obj = $.parseJSON(returndata); //parse JSON
// Looping through the errors
$.each(json_obj.fieldErrors, function (index, value) {
alert(value.status);
});
}
});