未捕获的TypeError:即使命名正确,也无法读取未定义错误的属性“长度”
这是我的servlet
jsonObject.add("MessageInfo", jsonElement); out.print(jsonObject);
这是我的javacript文件
$.ajax({ type : "POST", url : "GetConversation", response : "json", data : "rideID="+rideID, // if received a response from the server success : function(data, textStatus, jqXHR) { console.log("success"); console.log(data.MessageInfo); $.each(data.MessageInfo, function(index, value) { console.log("Data Found"); var eachrow = "" +"" +value.messageBody +"" +""; $('.messageContainer').prepend(eachrow); }); }, // If there was no resonse from the server error : function(jqXHR, textStatus, errorThrown) { // alert("Something really bad happened " + textStatus); } });
我正在向我的servlet发送一个AJAX请求并接收响应,但是当我使用$ .each循环将其解析到我的jsp页面时,我收到此错误。
未捕获的TypeError:无法读取未定义错误的属性“长度”
这是响应的屏幕截图。
这是怎么造成的,如何解决?
您使用错误的选项$.ajax
它没有response
选项。 但是你应该用dataType: "json"
替换它dataType: "json"
。 在使用此选项之前,Jquery不会将字符串转换为JSON对象。
dataType (default: Intelligent Guess (xml, json, script, or html))
类型: String
您期望从服务器返回的数据类型。 如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本, 其他任何东西将是以字符串forms返回 )。