Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';长度';未定义的错误,甚至命名都是正确的_Javascript_Jquery_Loops_Servlets_Foreach - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';长度';未定义的错误,甚至命名都是正确的

Javascript 未捕获类型错误:无法读取属性';长度';未定义的错误,甚至命名都是正确的,javascript,jquery,loops,servlets,foreach,Javascript,Jquery,Loops,Servlets,Foreach,这是我的servlet jsonObject.add("MessageInfo", jsonElement); out.print(jsonObject); 这是我的JavaScript文件 $.ajax({ type : "POST", url : "GetConversation", response : "json", data : "rideID="+rideID, // if received a response from the serve

这是我的servlet

jsonObject.add("MessageInfo", jsonElement);
out.print(jsonObject);
这是我的JavaScript文件

$.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 = "<div class='conversation'>"
                    +"<div class='bubble'>"
                    +value.messageBody
                    +"<div class='pic'>" 
                    +"</div>"; 
                $('.messageContainer').prepend(eachrow);
            }); 
    },
    // If there was no resonse from the server
    error : function(jqXHR, textStatus, errorThrown) {
        // alert("Something really bad happened " + textStatus);
    }
});
$.ajax({
类型:“POST”,
url:“GetConversation”,
答复:“json”,
数据:“rideID=”+rideID,
//如果收到来自服务器的响应
成功:函数(数据、文本状态、jqXHR){
控制台日志(“成功”);
console.log(data.MessageInfo);
$.each(data.MessageInfo,函数(索引,值){
控制台日志(“找到的数据”);
var eachrow=“”
+""
+value.messageBody
+"" 
+""; 
$('.messageContainer').prepend(每个箭头);
}); 
},
//如果没有来自服务器的响应
错误:函数(jqXHR、textStatus、errorshown){
//警惕(“发生了非常糟糕的事情”+textStatus);
}
});
我正在向servlet发送一个AJAX请求并接收响应,但当我使用$将其解析到jsp页面时,每次循环都会出现此错误

未捕获的TypeError:无法读取未定义错误的属性“length”

下面是回应的截图


这是怎么造成的?我该如何解决它?

您使用了错误的选项,但它没有
响应
选项。但是您应该将其替换为
数据类型:“json”
。在使用此选项之前,Jquery不会将字符串转换为JSON对象

数据类型(默认值:智能猜测(xml、json、脚本或html))

类型:
String

所需的数据类型 从服务器返回。如果未指定,jQuery将尝试推断 它基于响应的MIME类型(XML MIME类型将产生 在1.4版本中,JSON将生成一个JavaScript对象,而在1.4版本中,脚本将生成一个JavaScript对象 执行脚本,其他任何内容都将作为字符串返回


你能给出console.log(data.MessageInfo)的值吗;未捕获引用错误:未在Object.InjectedScript的:2:13处定义数据。_evaluateOn(:875:140)在Object.InjectedScript处。_evaluateAndWrap(:808:34)在Object.InjectedScript处定义数据。evaluate@AnoopLL它给出了未捕获的引用错误:未定义数据(